# setting DIST_DIR before calling rake
dist_dir = ENV['DIST_DIR'] || File.join( prefix, 'dist' )
-base_files = %w{intro core support data queue attributes event selector traversing manipulation css ajax effects offset dimensions outro}.map { |js| File.join( src_dir, "#{js}.js" ) }
+base_files = %w{
+ intro
+ core
+ support
+ data
+ queue
+ attributes
+ event
+ selector
+ traversing
+ manipulation
+ css
+ ajax
+ ajax/jsonp
+ ajax/script
+ ajax/xhr
+ effects
+ offset
+ dimensions
+ outro
+}.map { |js| File.join( src_dir, "#{js}.js" ) }
# Sizzle, QUnit and jQuery files/dirs
sizzle_dir = File.join( src_dir, "sizzle" )
# Build tools
rhino = "java -jar #{build_dir}/js.jar"
-minfier = "java -jar #{build_dir}/google-compiler-20091218.jar"
+minfier = "java -jar #{build_dir}/google-compiler-20100917.jar"
# Turn off output other than needed from `sh` and file commands
-verbose(false)
+verbose(false)
# Tasks
task :default => "all"
task :init => [sizzle, qunit] do
sizzle_git = File.join(sizzle_dir, '.git')
qunit_git = File.join(qunit_dir, '.git')
-
+
puts "Updating SizzleJS with latest..."
sh "git --git-dir=#{sizzle_git} pull -q origin master"
desc "Removes dist folder, selector.js, and Sizzle/QUnit"
task :clean do
- puts "Removing Distribution directory: #{dist_dir}..."
- rm_r dist_dir, :force => true
+ puts "Removing Distribution directory: #{dist_dir}..."
+ rm_rf dist_dir
puts "Removing built copy of Sizzle..."
- rm_r selector, :force => true
+ rm_rf selector
puts "Removing cloned directories..."
- rm_r qunit_dir, :force => true
- rm_r sizzle_dir, :force => true
+ rm_rf qunit_dir
+ rm_rf sizzle_dir
end
desc "Rebuilds selector.js from SizzleJS"
file jq => [dist_dir, base_files].flatten do
puts "Building jquery.js..."
-
+
File.open(jq, 'w') do |f|
- f.write cat(base_files).gsub(/(Date:.)/, "\\1#{date}" ).gsub(/@VERSION/, version)
+ f.write cat(base_files).
+ gsub(/@DATE/, date).
+ gsub(/@VERSION/, version).
+ gsub(/.function..jQuery...\{/, '').
+ gsub(/\}...jQuery..;/, '')
end
end
puts "Building jquery.min.js..."
sh "#{minfier} --js #{jq} --warning_level QUIET --js_output_file #{jq_min}"
-
+
min = File.read( jq_min )
-
+
# Equivilent of "head"
File.open(jq_min, 'w') do |f|
f.write File.readlines(jq)[0..14].join()
end
end
-file selector => [sizzle, :init] do
+file selector => [sizzle, :init] do
puts "Building selector code from Sizzle..."
-
+
File.open(selector, 'w') do |f|
- f.write File.read(sizzle).gsub(
- /^.+EXPOSE$\n/,
+ f.write File.read(sizzle).gsub(
+ /^.+EXPOSE$\n/,
'\0' + File.read( File.join( src_dir, 'sizzle-jquery.js' ))
).gsub(
/^window.Sizzle.+$\n/, ''
files.map do |file|
File.read(file)
end.join('')
-end
\ No newline at end of file
+end