mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 23:06:57 +08:00
256d7a00e9
* Update sass-rails. * FIX: Tilt dependency has been removed from Ember::Handlebars::Template. * Update `DiscourseIIFE` to new Sprockets API. * `Rails.application.assets` returns `nil` in production. * Move sprockets-rails out of the assets group. * Pin ember-rails to 0.18.5 which works with Sprockets 3.x. * Update sprockets to 3.6.0. * Make `DiscourseSassCompiler` work with Sprockets 3. * Use `Sass::Rails::SassImporterGlobbing` instead of haxxing our own. * Moneky patch so that we don't add dependencies for our custom css. * FIX: Missing class. * Upgrade ember-handlebars-template. * FIX: require path needs to share the same root as the folder's path. * Bump discourse-qunit-rails. * Update ember-template-compiler.js to 1.12.2. * `prepend` is private in Ruby 2.0.0.
48 lines
1.3 KiB
Ruby
48 lines
1.3 KiB
Ruby
# barber patches to re-route raw compilation via ember compat handlebars
|
|
|
|
class Barber::Precompiler
|
|
def sources
|
|
[File.open("#{Rails.root}/vendor/assets/javascripts/handlebars.js"), precompiler]
|
|
end
|
|
|
|
def precompiler
|
|
@precompiler ||= StringIO.new <<END
|
|
var Discourse = {};
|
|
#{File.read(Rails.root + "app/assets/javascripts/discourse/lib/ember_compat_handlebars.js")}
|
|
var Barber = {
|
|
precompile: function(string) {
|
|
return Discourse.EmberCompatHandlebars.precompile(string,false).toString();
|
|
}
|
|
};
|
|
END
|
|
end
|
|
end
|
|
|
|
module Discourse
|
|
module Ember
|
|
module Handlebars
|
|
module Helper
|
|
def precompile_handlebars(string)
|
|
"Discourse.EmberCompatHandlebars.template(#{Barber::Precompiler.compile(string)});"
|
|
end
|
|
|
|
def compile_handlebars(string)
|
|
"Discourse.EmberCompatHandlebars.compile(#{indent(string).inspect});"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
class Ember::Handlebars::Template
|
|
include Discourse::Ember::Handlebars::Helper
|
|
|
|
# FIXME: Previously, ember-handlebars-templates uses the logical path which incorrectly
|
|
# returned paths with the `.raw` extension and our code is depending on the `.raw`
|
|
# to find the right template to use.
|
|
def actual_name(input)
|
|
actual_name = input[:name]
|
|
input[:filename].include?('.raw') ? "#{actual_name}.raw" : actual_name
|
|
end
|
|
end
|