Last active
December 11, 2015 23:38
-
-
Save ivanvanderbyl/4677835 to your computer and use it in GitHub Desktop.
A simple rake task to update Ember and Ember Data to a build from master. (requires ember-rails)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A simple rake task to update Ember and Ember Data to a build from master. | |
# | |
# Assumptions: | |
# - You're using the `ember-rails` gem | |
# - You are requiring rember with sprockets with something like `require ember` | |
# - You have added these gems to your Gemfile: | |
# - gem "rake-pipeline", :git => "https://github.com/livingsocial/rake-pipeline.git" | |
# - gem "rake-pipeline-web-filters", :git => "https://github.com/wycats/rake-pipeline-web-filters.git" | |
# - gem 'colored' | |
# | |
# Usage: | |
# | |
# $ rake ember:update | |
# | |
# This will place a development build (with comments and debug tags) into: | |
# vendor/assets/ember/development/ember.js | |
# and a production non-minified build (no comments or debug tags) into: | |
# vendor/assets/ember/production/ember.js | |
# | |
# Written by Ivan Vanderbyl ([email protected]) December, 2012 | |
def say(msg, &block) | |
print "#{msg}..." | |
if block_given? | |
quietly do | |
yield | |
end | |
puts " Done." | |
end | |
end | |
directory "tmp" | |
file "tmp/ember.js" => "tmp" do | |
cd "tmp" do | |
sh "git clone https://github.com/emberjs/ember.js.git" | |
end | |
end | |
file "tmp/ember-data.js" => "tmp" do | |
cd "tmp" do | |
sh "git clone https://github.com/emberjs/data.git ember-data.js" | |
end | |
end | |
task :update_ember_git => ["tmp/ember.js"] do | |
require 'rake-pipeline' | |
say "Checking out latest changes for ember.js" do | |
cd "tmp/ember.js" do | |
sh "git fetch origin" | |
sh "git reset --hard origin/master" | |
end | |
end | |
end | |
task :update_ember_data_git => ["tmp/ember-data.js"] do | |
require 'rake-pipeline' | |
say "Checking out latest changes for emberjs/data" do | |
cd "tmp/ember-data.js" do | |
sh "git fetch origin" | |
sh "git reset --hard origin/master" | |
end | |
end | |
end | |
task :cleanup_build_files do | |
say("Removing build files...") do | |
rm_f('tmp/ember.js') | |
rm_f('tmp/ember-data.js') | |
end | |
end | |
file "tmp/ember-data.js/dist/ember-data.js" | |
file "tmp/ember.js/dist/ember.js" | |
file "vendor/assets/ember/development/ember.js" => [:update_ember_git, "tmp/ember.js/dist/ember.js"] do | |
say "Building Ember.js" do | |
cd "tmp/ember.js" do | |
sh "rake clean dist" | |
end | |
end | |
say "Copying Ember.js to assets" do | |
cd "tmp/ember.js" do | |
cp "dist/ember.js", "../../vendor/assets/ember/development/ember.js" | |
cp "dist/ember.prod.js", "../../vendor/assets/ember/production/ember.js" | |
end | |
end | |
end | |
file "vendor/assets/ember/development/ember-data.js" => [:update_ember_data_git, "tmp/ember-data.js/dist/ember-data.js"] do | |
say "Building Ember Data" do | |
cd "tmp/ember-data.js" do | |
sh "rake clean dist" | |
end | |
end | |
say "Copying Ember Data to assets" do | |
cd "tmp/ember-data.js" do | |
cp "dist/ember-data.js", "../../vendor/assets/ember/development/ember-data.js" | |
cp "dist/ember-data.prod.js", "../../vendor/assets/ember/production/ember-data.js" | |
end | |
end | |
end | |
namespace :ember do | |
desc "Update Ember.js to master (vendor/assets/ember/development/ember.js)" | |
task :update => [:core, :data] | |
task :core => ["vendor/assets/ember/development/ember.js", :cleanup_build_files] | |
task :data => ["vendor/assets/ember/development/ember-data.js", :cleanup_build_files] | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
group :development do | |
gem "rake-pipeline", :git => "https://github.com/livingsocial/rake-pipeline.git" | |
gem "rake-pipeline-web-filters", :git => "https://github.com/wycats/rake-pipeline-web-filters.git" | |
gem 'colored' | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment