aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/railties/paths.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller/railties/paths.rb')
-rw-r--r--actionpack/lib/action_controller/railties/paths.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/railties/paths.rb b/actionpack/lib/action_controller/railties/paths.rb
new file mode 100644
index 0000000000..dce3c2fe88
--- /dev/null
+++ b/actionpack/lib/action_controller/railties/paths.rb
@@ -0,0 +1,32 @@
+module ActionController
+ module Railties
+ module Paths
+ def self.with(app)
+ Module.new do
+ define_method(:inherited) do |klass|
+ super(klass)
+
+ if namespace = klass.parents.detect {|m| m.respond_to?(:_railtie) }
+ paths = namespace._railtie.paths["app/helpers"].existent
+ else
+ paths = app.config.helpers_paths
+ end
+
+ klass.helpers_path = paths
+ if klass.superclass == ActionController::Base && ActionController::Base.include_all_helpers
+ klass.helper :all
+ end
+
+ if app.config.serve_static_assets && namespace
+ paths = namespace._railtie.config.paths
+
+ klass.config.assets_dir = paths["public"].first
+ klass.config.javascripts_dir = paths["public/javascripts"].first
+ klass.config.stylesheets_dir = paths["public/stylesheets"].first
+ end
+ end
+ end
+ end
+ end
+ end
+end