I\'m building an Ember.js application using Express.js as the backend. Right now, I load all my *.js files individually and store my Handlebars templates in my HTML file. I like
I started working on a setup for using an Assetfile with an ember project, this is based on the peepcode tutorial and added the build tools, see: https://github.com/pixelhandler/peepcode-ordr
As for compiling coffee script this is an example doing that... https://github.com/OC-Emberjs/peepcode-ordr-test/blob/assetmanager/Assetfile
# Assetfile
require 'rake-pipeline-web-filters'
output "public"
input "js/tests" do
match "**/*.coffee" do
coffee_script
concat "tests.js"
end
end
# vim:ft=ruby
And precompiling the Handlebars templates like so...
# Assetfile
# See Getting Started readme
# - https://github.com/livingsocial/rake-pipeline/blob/master/GETTING_STARTED.md
# See Assetfile examples:
# - https://gist.github.com/dudleyf/1557811
# - https://github.com/ryanto/ryanto.github.com/blob/master/Assetfile
require "rake-pipeline-web-filters"
output "public"
class HandlebarsFilter < Rake::Pipeline::Filter
def generate_output(inputs, output)
inputs.each do |input|
# for sub-templates we can't really use '/' in a filename so using '__' instead, then replacing
name = File.basename(input.fullpath, ".handlebars").sub(/__/, "/")
output.write "return Ember.TEMPLATES['#{name}'] = Ember.Handlebars.compile(#{input.read.to_json})"
end
end
end
input "app/templates" do
match "**/*.handlebars" do
filter HandlebarsFilter
name = proc { |input| File.basename(input.fullpath, ".handlebars").sub(/__/, "/") + "_template" }
minispade :module_id_generator => name
concat "js/templates.js"
end
end
# vim:ft=ruby
Here is an example file I used to start from: https://github.com/hjr3/dasfd/blob/master/Assetfile