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.
|
|
require 'rake' require 'rake/clean'
task :default => :test
ROOT = File.expand_path('..', __FILE__) MUSTACHE_JS = File.read(File.join(ROOT, 'mustache.js'))
def mustache_version match = MUSTACHE_JS.match(/exports\.version = "([^"]+)";/) match[1] end
def minified_file ENV['FILE'] || 'mustache.min.js' end
desc "Run all tests, requires vows (see http://vowsjs.org)" task :test do sh "vows --spec" end
desc "Minify to #{minified_file}, requires UglifyJS (see http://marijnhaverbeke.nl/uglifyjs)" task :minify do sh "uglifyjs mustache.js > #{minified_file}" end
desc "Run JSHint, requires jshint (see http://www.jshint.com)" task :lint do sh "jshint mustache.js" end
# Creates a task that uses the various template wrappers to make a wrapped # output file. There is some extra complexity because Dojo and YUI use # different final locations. def templated_build(name, opts={}) short = name.downcase source = File.join("wrappers", short) dependencies = ["mustache.js"] + Dir.glob("#{source}/*.tpl.*") target_js = opts[:location] ? "mustache.js" : "#{short}.mustache.js"
CLEAN.include(opts[:location] ? opts[:location] : target_js)
desc "Package for #{name}" task short.to_sym => dependencies do puts "Packaging for #{name}"
mkdir_p opts[:location] if opts[:location]
files = [ "#{source}/mustache.js.pre", 'mustache.js', "#{source}/mustache.js.post" ]
open("#{opts[:location] || '.'}/#{target_js}", 'w') do |f| files.each {|file| f << File.read(file) } end
puts "Done, see #{opts[:location] || '.'}/#{target_js}" end end
templated_build "jQuery" templated_build "MooTools" templated_build "Dojo", :location => "dojox/string" templated_build "YUI3", :location => "yui3/mustache" templated_build "qooxdoo"
|