A Twitch.tv viewer reward and games system.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.8 KiB

11 years ago
  1. require 'rake'
  2. require 'rake/clean'
  3. task :default => :test
  4. ROOT = File.expand_path('..', __FILE__)
  5. MUSTACHE_JS = File.read(File.join(ROOT, 'mustache.js'))
  6. def mustache_version
  7. match = MUSTACHE_JS.match(/exports\.version = "([^"]+)";/)
  8. match[1]
  9. end
  10. def minified_file
  11. ENV['FILE'] || 'mustache.min.js'
  12. end
  13. desc "Run all tests, requires vows (see http://vowsjs.org)"
  14. task :test do
  15. sh "vows --spec"
  16. end
  17. desc "Minify to #{minified_file}, requires UglifyJS (see http://marijnhaverbeke.nl/uglifyjs)"
  18. task :minify do
  19. sh "uglifyjs mustache.js > #{minified_file}"
  20. end
  21. desc "Run JSHint, requires jshint (see http://www.jshint.com)"
  22. task :lint do
  23. sh "jshint mustache.js"
  24. end
  25. # Creates a task that uses the various template wrappers to make a wrapped
  26. # output file. There is some extra complexity because Dojo and YUI use
  27. # different final locations.
  28. def templated_build(name, opts={})
  29. short = name.downcase
  30. source = File.join("wrappers", short)
  31. dependencies = ["mustache.js"] + Dir.glob("#{source}/*.tpl.*")
  32. target_js = opts[:location] ? "mustache.js" : "#{short}.mustache.js"
  33. CLEAN.include(opts[:location] ? opts[:location] : target_js)
  34. desc "Package for #{name}"
  35. task short.to_sym => dependencies do
  36. puts "Packaging for #{name}"
  37. mkdir_p opts[:location] if opts[:location]
  38. files = [
  39. "#{source}/mustache.js.pre",
  40. 'mustache.js',
  41. "#{source}/mustache.js.post"
  42. ]
  43. open("#{opts[:location] || '.'}/#{target_js}", 'w') do |f|
  44. files.each {|file| f << File.read(file) }
  45. end
  46. puts "Done, see #{opts[:location] || '.'}/#{target_js}"
  47. end
  48. end
  49. templated_build "jQuery"
  50. templated_build "MooTools"
  51. templated_build "Dojo", :location => "dojox/string"
  52. templated_build "YUI3", :location => "yui3/mustache"
  53. templated_build "qooxdoo"