lib/requirejs/rails/engine.rb in requirejs-rails-0.0.2 vs lib/requirejs/rails/engine.rb in requirejs-rails-0.5.0
- old
+ new
@@ -1,6 +1,44 @@
+require 'requirejs/rails/config'
+
+require 'pathname'
+
module Requirejs
module Rails
class Engine < ::Rails::Engine
- end
+
+ initializer "requirejs.tag_included_state" do |app|
+ ActiveSupport.on_load(:action_controller) do
+ ::ActionController::Base.class_eval do
+ attr_accessor :requirejs_included
+ end
+ end
+ end
+
+ initializer "requirejs.config" do |app|
+ config = app.config
+ config.requirejs = Requirejs::Rails::Config.new(app)
+ if config.requirejs.manifest
+ path = File.join(config.assets.manifest, "rjs_manifest.yml")
+ else
+ path = File.join(::Rails.public_path, config.assets.prefix, "rjs_manifest.yml")
+ end
+ config.requirejs.manifest_path = Pathname.new(path)
+
+ config.requirejs.precompile = [/require\.js$/]
+
+ if ::Rails.env == "production"
+ config.assets.precompile += config.requirejs.precompile
+ end
+ end
+
+ initializer "requirejs.manifest", :after => "sprockets.environment" do |app|
+ config = app.config
+ if config.requirejs.manifest_path.exist? && config.assets.digests
+ rjs_digests = YAML.load_file(config.requirejs.manifest_path)
+ config.assets.digests.merge!(rjs_digests)
+ end
+ end
+
+ end # class Engine
end
end