Rakefile in angular-gem-1.1.2 vs Rakefile in angular-gem-1.1.3
- old
+ new
@@ -2,38 +2,105 @@
begin
require 'bundler/setup'
rescue LoadError
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
end
-begin
- require 'rdoc/task'
-rescue LoadError
- require 'rdoc/rdoc'
- require 'rake/rdoctask'
- RDoc::Task = Rake::RDocTask
-end
-RDoc::Task.new(:rdoc) do |rdoc|
- rdoc.rdoc_dir = 'rdoc'
- rdoc.title = 'AngularGem'
- rdoc.options << '--line-numbers'
- rdoc.rdoc_files.include('README.rdoc')
- rdoc.rdoc_files.include('lib/**/*.rb')
-end
-
-APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
-load 'rails/tasks/engine.rake'
-
-
Bundler::GemHelper.install_tasks
+require 'rake'
+# http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
require 'rake/testtask'
+require 'net/http'
+require 'nokogiri'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.libs << 'test'
t.pattern = 'test/**/*_test.rb'
t.verbose = false
end
+js_dir = 'vendor/assets/javascripts/'
+
+desc 'Fetches angular.js file from code.angular.js'
+task :download do |t|
+ version = ENV['VERSION']
+ version ||= 'latest'
+ puts "Target version: #{version.chomp('/')}"
+ additional_components = ENV['COMPONENTS'].split(",") unless ENV['COMPONENTS'].nil?
+ additional_components ||= ['resource', 'sanitize']
+ components = ['angular'].concat additional_components.map{|entry| "angular-#{entry}"}
+ puts "Target components: #{components}"
+ angular_root = "code.angularjs.org"
+ Net::HTTP.start(angular_root) do |http|
+ resp = http.get("/")
+ doc = Nokogiri::HTML(resp.body)
+ links = doc.css('a')
+ known_versions = links.map {|link| link.attribute('href').to_s}.uniq.sort.reverse
+ known_versions.delete_if do |href|
+ href.empty? || (href =~ /^([0-9]).*\/$/).nil?
+ end
+
+ if !(known_versions.include? version + "/")
+ puts "WARN: Specified version='#{version}' not found, setting to latest version: '#{known_versions.first}'"
+ version = known_versions.first
+ end
+ end
+
+ Dir.mkdir(File.join(js_dir, version)) unless Dir.exist?(File.join(js_dir, version))
+ Dir.chdir(File.join(js_dir, version)) do
+ Net::HTTP.start(angular_root) do |http|
+ components.each do |component|
+ filename = "#{component}-#{version.chomp('/')}.js"
+ next if File.exists?(filename)
+ resp = http.get("/#{version}/#{component}.js")
+ puts "Creating #{filename}" if resp.is_a?(Net::HTTPSuccess)
+ open(filename, "w") { |file| file.write(resp.body)}
+ end
+ end
+ end
+end
+
+desc 'Tag the default file versions for asset helpers'
+task :tag_default do |t|
+ Rake::Task["tag"].invoke
+end
+
+desc 'Tag the unstable file versions for asset helpers'
+task :tag_unstable do |t|
+ ENV['UNSTABLE_TAG'] = "-unstable"
+ Rake::Task["tag"].invoke
+end
+
+task :tag do |t|
+ version = ENV['VERSION']
+ version ||= 'latest'
+ additional_components = ENV['COMPONENTS'].split(",") unless ENV['COMPONENTS'].nil?
+ additional_components ||= ['resource', 'sanitize']
+ components = ['angular.js'].concat additional_components.map{|entry| "angular-#{entry}.js"}
+
+ unstable_tag = ENV['UNSTABLE_TAG'] || ''
+
+ puts "Target version: #{version.chomp('/')}"
+
+
+ Dir.chdir(js_dir) do
+ version_directories = Dir.glob("*").select { |fn| File.directory?(fn) }.sort.reverse
+ if !(version_directories.include? version)
+ puts "WARN: Specified version='#{version}' not found, setting to latest version: '#{version_directories.first}'"
+ version = version_directories.first
+ end
+ new_files = Hash[*Dir.glob("#{version}/*").map {|longfn| [longfn.split(version+'/', 2)[1].chomp("-#{version}.js")+'.js', longfn]}.flatten]
+ # Make sure all the components we want are there before overwriting.
+ if !(new_files.keys & components == components)
+ puts "ERROR: Target version directory does not contain all the components for updating: #{components}"
+ exit
+ end
+
+ components.each do |file|
+ FileUtils.cp new_files[file], file.chomp('.js')+unstable_tag+'.js', {verbose: true}
+ end
+ end
+end
task :default => :test