lib/ember/appkit/rails/engine.rb in ember-appkit-rails-0.2.2 vs lib/ember/appkit/rails/engine.rb in ember-appkit-rails-0.3.0
- old
+ new
@@ -1,33 +1,58 @@
-require 'ember-rails'
-
class Ember::Appkit::Rails::Engine < ::Rails::Engine
- config.ember.appkit = ActiveSupport::OrderedOptions.new
- config.ember.appkit.paths = ActiveSupport::OrderedOptions.new
- config.ember.appkit.namespaces = ActiveSupport::OrderedOptions.new
- config.ember.appkit.prefix_patterns = ActiveSupport::OrderedOptions.new
+ config.ember = ActiveSupport::OrderedOptions.new
+ config.ember.paths = ActiveSupport::OrderedOptions.new
+ config.ember.namespaces = ActiveSupport::OrderedOptions.new
+ config.ember.prefix_patterns = ActiveSupport::OrderedOptions.new
- config.ember.appkit.paths.app = 'app'
- config.ember.appkit.paths.config = 'config'
- config.ember.appkit.namespaces.app = 'app'
- config.ember.appkit.namespaces.config = 'config'
+ config.ember.paths.app = 'app'
+ config.ember.paths.config = 'config'
+ config.ember.namespaces.app = 'app'
+ config.ember.namespaces.config = 'config'
- config.ember.appkit.enable_logging = ::Rails.env.development?
+ config.ember.enable_logging = ::Rails.env.development?
+ config.ember.api_version = 1
+ generators do |app|
+ app.config.generators.helper false
+ app.config.generators.assets false
+ app.config.generators.template_engine false
+
+ ::Rails::Generators.configure!(app.config.generators)
+ ::Rails::Generators.hidden_namespaces.uniq!
+ require 'generators/ember/resource_override'
+ require 'generators/ember/scaffold_override'
+ require 'generators/ember/scaffold_controller_override'
+ end
+
initializer :appkit_transpiler do
- config.ember.appkit.prefix_patterns.app ||= Regexp.new(File.join(::Rails.root, config.ember.appkit.namespaces.app))
- config.ember.appkit.prefix_patterns.config ||= Regexp.new(File.join(::Rails.root, config.ember.appkit.namespaces.config))
+ config.ember.prefix_patterns.app ||= Regexp.new(File.join(::Rails.root, config.ember.namespaces.app))
+ config.ember.prefix_patterns.config ||= Regexp.new(File.join(::Rails.root, config.ember.namespaces.config))
- ES6ModuleTranspiler.add_prefix_pattern config.ember.appkit.prefix_patterns.app, config.ember.appkit.namespaces.app
- ES6ModuleTranspiler.add_prefix_pattern config.ember.appkit.prefix_patterns.config, config.ember.appkit.namespaces.config
+ ES6ModuleTranspiler.add_prefix_pattern config.ember.prefix_patterns.app, config.ember.namespaces.app
+ ES6ModuleTranspiler.add_prefix_pattern config.ember.prefix_patterns.config, config.ember.namespaces.config
ES6ModuleTranspiler.transform = lambda { |name| name.split('/').map { |n| n.underscore.dasherize }.join('/') }
end
initializer :appkit_handlebars do
+ config.handlebars = ActiveSupport::OrderedOptions.new
+
+ config.handlebars.precompile = true
+ config.handlebars.output_type = :global
+ config.handlebars.templates_root = "templates"
+ config.handlebars.templates_path_separator = '/'
+
+ config.before_initialize do |app|
+ Sprockets::Engines # force autoloading
+ Sprockets.register_engine '.handlebars', Ember::Appkit::Rails::Template
+ Sprockets.register_engine '.hbs', Ember::Appkit::Rails::Template
+ Sprockets.register_engine '.hjs', Ember::Appkit::Rails::Template
+ end
+
config.handlebars ||= ActiveSupport::OrderedOptions.new
config.handlebars.output_type = :amd
- config.handlebars.amd_namespace = config.ember.appkit.namespaces.app
+ config.handlebars.amd_namespace = config.ember.namespaces.app
end
initializer :appkit_router do |app|
app.routes.append do
get '/' => "landing#index"
@@ -38,10 +63,15 @@
assets = Sprockets::Railtie.config.assets
assets_javascript = assets.paths.delete(::Rails.root.join('app','assets','javascripts').to_s)
index_of_last_app_assets = assets.paths.rindex{|s| s.start_with?(::Rails.root.join('app').to_s) } + 1
- assets.paths.insert(index_of_last_app_assets, assets_javascript) if assets_javascript
- assets.paths.insert(index_of_last_app_assets, File.join(::Rails.root, config.ember.appkit.paths.config))
- assets.paths.insert(index_of_last_app_assets, File.join(::Rails.root, config.ember.appkit.paths.app))
+ assets.paths.insert(index_of_last_app_assets, File.join(::Rails.root, config.ember.paths.app))
+ assets.paths.insert(index_of_last_app_assets, File.join(::Rails.root, config.ember.paths.config))
+ end
+
+ initializer :appkit_setup_vendor, after: :append_assets_path, :group => :all do |app|
+ app.config.assets.paths.append(File.dirname(::Ember::Source.bundled_path_for("ember.js")))
+ app.config.assets.paths.append(File.dirname(::Ember::Data::Source.bundled_path_for("ember-data.js")))
+ app.config.assets.paths.append(File.expand_path('../', ::Handlebars::Source.bundled_path))
end
end