diff options
| -rw-r--r-- | Rakefile | 126 |
1 files changed, 42 insertions, 84 deletions
@@ -1,6 +1,13 @@ require 'yaml' include FileUtils + +## High level flow of the build: +## +## clean -> init -> concat -> minify -> package +## + + content = File.open('angularFiles.js', 'r') {|f| f.read } files = eval(content.gsub(/\};(\s|\S)*/, '}'). gsub(/angularFiles = /, ''). @@ -36,8 +43,8 @@ task :clean do end -desc 'Compile Scenario' -task :compile_scenario => :init do +desc 'Concat Scenario' +task :concat_scenario => :init do concat_file('angular-scenario.js', [ 'lib/jquery/jquery.js', @@ -48,8 +55,9 @@ task :compile_scenario => :init do ], gen_css('css/angular.css') + "\n" + gen_css('css/angular-scenario.css')) end -desc 'Compile JSTD Scenario Adapter' -task :compile_jstd_scenario_adapter => :init do + +desc 'Concat JSTD Scenario Adapter' +task :concat_jstd_scenario_adapter => :init do concat_file('jstd-scenario-adapter.js', [ 'src/ngScenario/jstd-scenario-adapter/angular.prefix', @@ -67,9 +75,9 @@ task :compile_jstd_scenario_adapter => :init do end -desc 'Compile JavaScript' -task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter] do +desc 'Concat AngularJS files' +task :concat => :init do concat_file('angular.js', [ 'src/angular.prefix', files['angularSrc'], @@ -99,14 +107,24 @@ task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter] do FileUtils.cp 'src/ngMock/angular-mocks.js', path_to('angular-mocks.js') - closure_compile('angular.js') - closure_compile('angular-cookies.js') - closure_compile('angular-loader.js') - closure_compile('angular-resource.js') - closure_compile('angular-sanitize.js') - closure_compile('angular-bootstrap.js') - closure_compile('angular-bootstrap-prettify.js') + rewrite_file(path_to('angular-mocks.js')) do |content| + content.sub!('"NG_VERSION_FULL"', NG_VERSION.full) + end +end + +desc 'Minify JavaScript' +task :minify => [:init, :concat, :concat_scenario, :concat_jstd_scenario_adapter] do + [ 'angular.js', + 'angular-cookies.js', + 'angular-loader.js', + 'angular-resource.js', + 'angular-sanitize.js', + 'angular-bootstrap.js', + 'angular-bootstrap-prettify.js' + ].each do |file| + closure_compile(file) + end end @@ -132,78 +150,18 @@ end desc 'Create angular distribution' -task :package => [:clean, :compile, :docs] do - tarball = "angular-#{NG_VERSION.full}.tgz" - - pkg_dir = path_to("pkg/angular-#{NG_VERSION.full}") - FileUtils.rm_r(path_to('pkg'), :force => true) - FileUtils.mkdir_p(pkg_dir) - - [ path_to('angular.js'), - path_to('angular.min.js'), - path_to('angular-loader.js'), - path_to('angular-loader.min.js'), - path_to('angular-bootstrap.js'), - path_to('angular-bootstrap.min.js'), - path_to('angular-bootstrap-prettify.js'), - path_to('angular-bootstrap-prettify.min.js'), - path_to('angular-mocks.js'), - path_to('angular-cookies.js'), - path_to('angular-cookies.min.js'), - path_to('angular-resource.js'), - path_to('angular-resource.min.js'), - path_to('angular-sanitize.js'), - path_to('angular-sanitize.min.js'), - path_to('angular-scenario.js'), - path_to('jstd-scenario-adapter.js'), - path_to('jstd-scenario-adapter-config.js'), - ].each do |src| - dest = src.gsub(/^.*\//, '').gsub(/((\.min)?\.js)$/, "-#{NG_VERSION.full}\\1") - FileUtils.cp(src, pkg_dir + '/' + dest) - end - - FileUtils.cp_r path_to('i18n'), "#{pkg_dir}/i18n-#{NG_VERSION.full}" - FileUtils.cp_r path_to('docs'), "#{pkg_dir}/docs-#{NG_VERSION.full}" - - rewrite_file("#{pkg_dir}/angular-mocks-#{NG_VERSION.full}.js") do |content| - content.sub!('"NG_VERSION_FULL"', NG_VERSION.full) - end - - - [ "#{pkg_dir}/docs-#{NG_VERSION.full}/index.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-nocache.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq-nocache.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-debug.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq-debug.html" - ].each do |src| - rewrite_file(src) do |content| - content.gsub!(/'angular(.*)\.js/, '\'angular\1-' + NG_VERSION.full + '.js') - end - end - - - rewrite_file("#{pkg_dir}/docs-#{NG_VERSION.full}/docs-scenario.html") do |content| - content.sub!('angular-scenario.js', "angular-scenario-#{NG_VERSION.full}.js") - end - - - [ "#{pkg_dir}/docs-#{NG_VERSION.full}/appcache.manifest", - "#{pkg_dir}/docs-#{NG_VERSION.full}/appcache-offline.manifest" - ].each do |src| - rewrite_file(src) do |content| - content.sub!('../angular.min.js', "angular-#{NG_VERSION.full}.min.js"). - sub!('/build/docs/', "/#{NG_VERSION.full}/docs-#{NG_VERSION.full}/") - end - end - +task :package => [:clean, :minify, :docs] do + zip_dir = "angular-#{NG_VERSION.full}" + zip_file = "#{zip_dir}.zip" - %x(tar -czf #{path_to(tarball)} -C #{path_to('pkg')} .) + FileUtils.ln_s BUILD_DIR, zip_dir + %x(zip -r #{zip_file} .) + FileUtils.rm zip_dir - FileUtils.cp path_to(tarball), pkg_dir - FileUtils.mv pkg_dir, path_to(['pkg', NG_VERSION.full]) + FileUtils.mv zip_file, path_to(zip_file) + FileUtils.ln_s '../', path_to(NG_VERSION.full) - puts "Package created: #{path_to(tarball)}" + puts "Package created: #{path_to(zip_file)}" end @@ -284,7 +242,7 @@ end def closure_compile(filename) - puts "Compiling #{filename} ..." + puts "Minifying #{filename} ..." min_path = path_to(filename.gsub(/\.js$/, '.min.js')) @@ -302,7 +260,7 @@ end def concat_file(filename, deps, footer='') - puts "Building #{filename} ..." + puts "Creating #{filename} ..." File.open(path_to(filename), 'w') do |f| concat = 'cat ' + deps.flatten.join(' ') |
