From 1477a6101da631a117427a1e53668dfe093a3726 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 18 Feb 2010 09:21:01 -0800 Subject: Fix called_from under Windows so engines works properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Valim --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 53e54d7400..a158bb7b70 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -15,7 +15,7 @@ module Rails def inherited(base) unless abstract_railtie?(base) base.called_from = begin - call_stack = caller.map { |p| p.split(':').first } + call_stack = caller.map { |p| p.split(':')[0..-2].join(':') } File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-]*/lib/rails|rack[\w\-]*/lib/rack] }) end end -- cgit v1.2.3 From a5684dfa3c16472bfa5d5d861ba78cb6dbadcb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Feb 2010 18:39:39 +0100 Subject: Ensure config.after_initializer is executed before building the middleware stack. --- railties/lib/rails/engine.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index a158bb7b70..efa11b466a 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -15,6 +15,7 @@ module Rails def inherited(base) unless abstract_railtie?(base) base.called_from = begin + # Remove the line number from backtraces making sure we don't leave anything behind call_stack = caller.map { |p| p.split(':')[0..-2].join(':') } File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-]*/lib/rails|rack[\w\-]*/lib/rack] }) end -- cgit v1.2.3 From fed72b5842e5e8604917602a15c126d48cf12fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 20 Feb 2010 15:46:55 +0100 Subject: Rename engines_load_path to railties_load_path. --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index efa11b466a..1696bb7b86 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -90,7 +90,7 @@ module Rails # I18n load paths are a special case since the ones added # later have higher priority. initializer :add_locales do - config.i18n.engines_load_path.concat(paths.config.locales.to_a) + config.i18n.railties_load_path.concat(paths.config.locales.to_a) end initializer :add_view_paths do -- cgit v1.2.3 From 76237f163ff7ad2a64af926030e3449c547cafa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 26 Feb 2010 02:35:14 +0100 Subject: Application detection should also allow dots in the path. --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 1696bb7b86..479d753614 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -17,7 +17,7 @@ module Rails base.called_from = begin # Remove the line number from backtraces making sure we don't leave anything behind call_stack = caller.map { |p| p.split(':')[0..-2].join(':') } - File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-]*/lib/rails|rack[\w\-]*/lib/rack] }) + File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-\.]*/lib/rails|rack[\w\-\.]*/lib/rack] }) end end -- cgit v1.2.3 From 6324eeefd7d1dd7b628afdcf436649062d12bbab Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 26 Feb 2010 13:29:44 -0800 Subject: plugin rails/init.rb deprecation message --- railties/lib/rails/engine.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 479d753614..b6ac48768d 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -95,8 +95,8 @@ module Rails initializer :add_view_paths do views = paths.app.views.to_a - ActionController::Base.view_paths.unshift(*views) if defined?(ActionController) - ActionMailer::Base.view_paths.unshift(*views) if defined?(ActionMailer) + ActionController::Base.prepend_view_path(views) if defined?(ActionController) + ActionMailer::Base.prepend_view_path(views) if defined?(ActionMailer) end initializer :add_metals do |app| @@ -132,4 +132,4 @@ module Rails app.config.reload_engines end end -end \ No newline at end of file +end -- cgit v1.2.3 From 6189480b1878cdadb092fdfa32ba156a91e6a0e1 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 27 Feb 2010 16:59:18 -0800 Subject: Revert "Application detection should also allow dots in the path." Ruby 1.9 regression. This reverts commit 76237f163ff7ad2a64af926030e3449c547cafa2. --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index b6ac48768d..a259edc826 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -17,7 +17,7 @@ module Rails base.called_from = begin # Remove the line number from backtraces making sure we don't leave anything behind call_stack = caller.map { |p| p.split(':')[0..-2].join(':') } - File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-\.]*/lib/rails|rack[\w\-\.]*/lib/rack] }) + File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-]*/lib/rails|rack[\w\-]*/lib/rack] }) end end -- cgit v1.2.3 From b1b922d6ea96bca0d0406032b02b1cd4b6e7f6c7 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 27 Feb 2010 17:10:04 -0800 Subject: Revert "Revert "Application detection should also allow dots in the path."" Works after all. Culprit was 226dfc2. This reverts commit 6189480b1878cdadb092fdfa32ba156a91e6a0e1. --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index a259edc826..b6ac48768d 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -17,7 +17,7 @@ module Rails base.called_from = begin # Remove the line number from backtraces making sure we don't leave anything behind call_stack = caller.map { |p| p.split(':')[0..-2].join(':') } - File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-]*/lib/rails|rack[\w\-]*/lib/rack] }) + File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-\.]*/lib/rails|rack[\w\-\.]*/lib/rack] }) end end -- cgit v1.2.3 From 7317d9ef4c1361219671dc4405a02ed3896f1742 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sun, 28 Feb 2010 16:39:01 -0600 Subject: Remove implicit controller namespacing from new dsl --- railties/lib/rails/engine.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index b6ac48768d..af47227510 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -43,7 +43,7 @@ module Rails delegate :middleware, :paths, :root, :to => :config def load_tasks - super + super config.paths.lib.tasks.to_a.sort.each { |ext| load(ext) } end @@ -77,6 +77,7 @@ module Rails end end + # DEPRECATED: Remove in 3.1 initializer :add_routing_namespaces do |app| paths.app.controllers.to_a.each do |load_path| load_path = File.expand_path(load_path) -- cgit v1.2.3 From 812136a0b23787aa0e81c28d0bbc71a9ccf0f6ea Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Mon, 1 Mar 2010 19:29:12 -0800 Subject: Fix unstated usage of Pathname --- railties/lib/rails/engine.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index af47227510..07218dcfa8 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -1,5 +1,6 @@ -require 'active_support/core_ext/module/delegation' require 'rails/railtie' +require 'active_support/core_ext/module/delegation' +require 'pathname' module Rails class Engine < Railtie -- cgit v1.2.3 From aa749a74f63547a503772f4489fb60b5e4fbea1a Mon Sep 17 00:00:00 2001 From: Carlhuda Date: Tue, 2 Mar 2010 14:00:17 -0800 Subject: Get the railties tests to pass again. --- railties/lib/rails/engine.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 07218dcfa8..79183480a3 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -97,8 +97,8 @@ module Rails initializer :add_view_paths do views = paths.app.views.to_a - ActionController::Base.prepend_view_path(views) if defined?(ActionController) - ActionMailer::Base.prepend_view_path(views) if defined?(ActionMailer) + ActionController::Base.prepend_view_path(views) if defined?(ActionController::Base) + ActionMailer::Base.prepend_view_path(views) if defined?(ActionMailer::Base) end initializer :add_metals do |app| -- cgit v1.2.3 From 9731c5213b9f1a46c478da862b43cbf708da40da Mon Sep 17 00:00:00 2001 From: Carlhuda Date: Wed, 3 Mar 2010 15:23:39 -0800 Subject: Don't rely on Rails.application global state in Config --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 79183480a3..f5cce857a2 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -41,7 +41,7 @@ module Rails end end - delegate :middleware, :paths, :root, :to => :config + delegate :middleware, :paths, :metal_loader, :root, :to => :config def load_tasks super -- cgit v1.2.3 From 028e54c63df84ad1ded1fb9c438eed540564552c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 6 Mar 2010 19:19:26 +0100 Subject: Add mailers to paths in case someone wants to access it directly and ensures deep nesting works in controllers. --- railties/lib/rails/engine.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index f5cce857a2..8f5040ea13 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -82,7 +82,7 @@ module Rails initializer :add_routing_namespaces do |app| paths.app.controllers.to_a.each do |load_path| load_path = File.expand_path(load_path) - Dir["#{load_path}/*/*_controller.rb"].collect do |path| + Dir["#{load_path}/*/**/*_controller.rb"].collect do |path| namespace = File.dirname(path).sub(/#{load_path}\/?/, '') app.routes.controller_namespaces << namespace unless namespace.empty? end -- cgit v1.2.3 From 39d6f9e112f2320d8c2006ee3bcc160cfa761d0a Mon Sep 17 00:00:00 2001 From: wycats Date: Sun, 7 Mar 2010 06:24:30 -0800 Subject: Make many parts of Rails lazy. In order to facilitate this, add lazy_load_hooks.rb, which allows us to declare code that should be run at some later time. For instance, this allows us to defer requiring ActiveRecord::Base at boot time purely to apply configuration. Instead, we register a hook that should apply configuration once ActiveRecord::Base is loaded. With these changes, brings down total boot time of a new app to 300ms in production and 400ms in dev. TODO: rename base_hook --- railties/lib/rails/engine.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'railties/lib/rails/engine.rb') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 8f5040ea13..85b4ff8470 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -97,8 +97,8 @@ module Rails initializer :add_view_paths do views = paths.app.views.to_a - ActionController::Base.prepend_view_path(views) if defined?(ActionController::Base) - ActionMailer::Base.prepend_view_path(views) if defined?(ActionMailer::Base) + ActionController.base_hook { prepend_view_path(views) } if defined?(ActionController) + ActionMailer.base_hook { prepend_view_path(views) } if defined?(ActionMailer) end initializer :add_metals do |app| -- cgit v1.2.3