A simple Rake task to update Ember.js
I was using a Rake task that I had seen Ivan Vanderbyl using to update the Ember source files to whatever was the latest available. It assumed you were using the ember-rails
gem and it would pull down the repos necessary, build the projects, and place the compilation results in the vendor
directory so that the asset pipeline would pick them up.
Since the Ember team put some work into getting builds served up from S3, the process of getting the latest code has become super simple. All you need is this Rake task in your lib/tasks
folder and away you go:
# A simple rake task to update Ember and Ember Data to latest official build from S3.
#
# Assumptions:
# - You're using the `ember-rails` gem
# - You are requiring rember with sprockets with something like `require ember`
#
# 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 minified build (no comments or debug tags) into:
# vendor/assets/ember/production/ember.js
#
# Idea by Ivan Vanderbyl (ivan@crashlog.io) December, 2012
# This implementation by John McDowall (john@mcdowall.info) April, 2013
def say(msg, &block)
print "#{msg}..."
if block_given?
quietly do
yield
end
puts " Done."
end
end
namespace :ember do
desc "Update Ember.js from latest Builds on S3."
task :update => [:core, :data]
task :core do
say "Grabbing Core from S3..." do
sh "curl -# http://builds.emberjs.com.s3.amazonaws.com/ember-latest.js -o vendor/assets/ember/development/ember.js"
sh "curl -# http://builds.emberjs.com.s3.amazonaws.com/ember-latest.min.js -o vendor/assets/ember/production/ember.js"
end
end
task :data do
say "Grabbing Data from S3..." do
sh "curl -# http://builds.emberjs.com.s3.amazonaws.com/ember-data-latest.js -o vendor/assets/ember/development/ember-data.js"
sh "curl -# http://builds.emberjs.com.s3.amazonaws.com/ember-data-latest.min.js -o vendor/assets/ember/production/ember-data.js"
end
end
end
Now you can simply say rake ember:update
and if you’re using the ember-rails
gem, you’ll get the latest builds in no time at all.
Gist here.