summaryrefslogtreecommitdiffstats
path: root/Rakefile
diff options
context:
space:
mode:
authorwout <wout@impinc.co.uk>2014-07-13 10:32:20 +0200
committerwout <wout@impinc.co.uk>2014-07-13 10:32:20 +0200
commite9a0d5f5d7074b1cb3d1bd5a00f6a602bd55f983 (patch)
tree709af264123ce66ebafb8490d84cceb6d5b8b97a /Rakefile
parent40bf2f8ecda3f426e7f13e1d891ab1ab6e004116 (diff)
downloadsvg.js-e9a0d5f5d7074b1cb3d1bd5a00f6a602bd55f983.tar.gz
svg.js-e9a0d5f5d7074b1cb3d1bd5a00f6a602bd55f983.zip
Switched to gulp for building
Diffstat (limited to 'Rakefile')
-rwxr-xr-xRakefile152
1 files changed, 0 insertions, 152 deletions
diff --git a/Rakefile b/Rakefile
deleted file mode 100755
index f5ce78a..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,152 +0,0 @@
-SVGJS_VERSION = '1.0.0-rc.10'
-
-# all available modules in the correct loading order
-MODULES = %w[ svg inventor adopter regex utilities default color array pointarray patharray number viewbox element boxes matrix attr transform style parent container transporter fx relative event defs group arrange mask clip gradient pattern doc spof shape symbol use rect ellipse line poly pointed path image text textpath nested hyperlink marker sugar set data memory selector loader helpers polyfill ]
-
-# how many bytes in a "kilobyte"
-KILO = 1024
-
-# define default task
-task :default => :dist
-
-# module-aware file task
-class BuildTask < Rake::FileTask
-
- def modules
- prerequisites.map { |f| File.basename(f, '.js') }
- end
-
- def remove_prerequisites to_remove
- @prerequisites -= to_remove
- return self
- end
-
- def needed?() super or modules_mismatch? end
-
- def modules_mismatch?
- previous_modules != modules
- end
-
- def previous_modules
- first_line =~ / - ([\w,\s]+) - / && $1.split(/\W+/)
- end
-
- def first_line
- File.open(name, 'r') { |f| f.gets }
- end
-
-end
-
-BuildTask.define_task 'dist/svg.js' => MODULES.map {|m| "src/#{ m }.js" } do |task|
- mkdir_p 'dist', :verbose => false
-
- svgjs = ''
-
- task.prerequisites.each do |src|
- # bring in source files one by one, but without copyright info
- copyright = true
- File.open(src).each_line do |line|
- copyright = false if copyright and line !~ %r{^(/|\s*$)}
- svgjs << " #{ line }" unless copyright
- end
- svgjs << "\n\n"
- end
-
- File.open(task.name, 'w') do |file|
- file.puts "/* svg.js %s - %s - svgjs.com/license */" % [version_string, task.modules.join(' ')]
-
- file.puts ';(function() {'
- file.puts "\n"
- file.puts svgjs
- file.puts '}).call(this);'
- end
-
-end
-
-file 'dist/svg.min.js' => 'dist/svg.js' do |task|
- require 'rubygems'
- begin require 'uglifier'
- rescue LoadError; fail "Uglifier not available: #{$!}"
- else
- File.open(task.name, 'w') do |min|
- min << Uglifier.new.compile(File.read(task.prerequisites.first))
- end
- end
-end
-
-file 'dist/svg.min.gz' => 'dist/svg.min.js' do |task|
- verbose false do
- tmp_file = task.name.sub('.gz', '')
- cp task.prerequisites.first, tmp_file
- sh 'gzip', '--best', tmp_file
- end
-end
-
-desc "Concatenate source files to build svg.js"
-task :concat, [:modules] do |task, args|
- modules = args[:modules].to_s.split(':')
- toattrsdd, to_exclude = modules.partition {|m| m.sub!(/^(-)?(.+)/, 'src/\2.js'); !$1 }
-
- Rake::Task['dist/svg.js'].
- remove_prerequisites(to_exclude).enhance(toattrsdd).
- invoke
-end
-
-desc "Generate svg.js distribution files and report size statistics"
-task :dist => ['dist/svg.js', 'dist/svg.min.js', 'dist/svg.min.gz'] do |task|
- orig_size, min_size, gz_size = task.prerequisites.map {|f| File.size(f) }
-
- puts "Original version: %.3fk" % (orig_size.to_f / KILO)
- puts "Minified: %.3fk" % (min_size.to_f / KILO)
- puts "Minified and gzipped: %.3fk, compression factor %.3f" % [gz_size.to_f / KILO, orig_size.to_f / gz_size]
-
- rm_f 'dist/svg.min.gz', :verbose => false
-end
-
-desc "List available modules"
-task :modules do
- Dir['src/**/*.js'].each do |file|
- name = file.gsub(/^src\//,'').gsub(/.js$/,'')
- puts name + (MODULES.include?(name) ? '*' : '')
- end
- puts "\n*included in default build"
-end
-
-task(:clean) { rm_rf 'dist' }
-
-desc "Run tests with PhantomJS"
-task :test do
- sh 'script/test'
- Rake::Task[:check_whitespace].invoke
-end
-
-desc "Strip trailing whitespace and ensure each file ends with a newline"
-task :whitespace do
- verbose false do
- files = Dir['{src,test,examples}/**/*.{js,html}']
- ruby(*%w'-p -i -e $_.sub!(/\s*\Z/,"\n")'.concat(files))
- end
-end
-
-desc "Checks for trailing whitespace in source files and tests"
-task :check_whitespace do
- flunked = false
- flunk = lambda {|file, num| flunked = true; puts "#{file}:#{num}" }
- Dir['{src,test,examples}/**/*.{js,html}'].each do |file|
- File.open(file, 'r') {|f| f.each_with_index {|ln, num| flunk.call(file, num + 1) if ln.chomp =~ /\s+$/ } }
- end
- fail if flunked
-end
-
-# svg.js version number + git sha if available
-def version_string
- desc = `git describe --tags HEAD 2>&1`.chomp
- if $?.success?
- desc
- else
- suffix, dir = '', File.basename(Dir.pwd)
- # detect git sha from directory name of GitHub zip/tarball
- suffix = "-g#{$1}" if dir =~ /^wout-svg.js-([a-f0-9]{7,40})$/
- SVGJS_VERSION + suffix
- end
-end \ No newline at end of file