Sha256: ad9ba18eb8075bdf659afd94937e0312450b06e251b8d391f7a145a07c5f3025

Contents?: true

Size: 1.83 KB

Versions: 2

Compression:

Stored size: 1.83 KB

Contents

require 'requirejs/rails/config'

require 'pathname'

module Requirejs
  module Rails
    class Engine < ::Rails::Engine

      ### Configuration setup
      config.before_configuration do |app|
        config.requirejs = Requirejs::Rails::Config.new
        config.requirejs.precompile = [/require\.js$/]

        # Location of the user-supplied config parameters, which will be
        # merged with the default params.  It should be a YAML file with
        # a single top-level hash, keys/values corresponding to require.js
        # config parameters.
        config.requirejs.user_config_file = Pathname.new(app.paths["config"].first)+'requirejs.yml'
        if config.requirejs.user_config_file.exist?
          config.requirejs.user_config = YAML.load(config.requirejs.user_config_file.read)
        else
          config.requirejs.user_config = {}
        end
      end

      config.before_initialize do |app|
        config = app.config
        if ::Rails.env == "production"
          config.assets.precompile += config.requirejs.precompile
        end

        manifest_path = File.join(::Rails.public_path, config.assets.prefix, "rjs_manifest.yml")
        config.requirejs.manifest_path = Pathname.new(manifest_path)
      end

      ### Initializers
      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.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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
requirejs-rails-0.7.1 lib/requirejs/rails/engine.rb
requirejs-rails-0.7.0 lib/requirejs/rails/engine.rb