6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/abstract_controller/railties/routes_helpers.rb', line 6
def self.with(routes, include_path_helpers = true)
Module.new do
define_method(:inherited) do |klass|
super(klass)
namespace = klass.module_parents.detect { |m| m.respond_to?(:railtie_routes_url_helpers) }
actual_routes = namespace ? namespace.railtie_routes_url_helpers._routes : routes
if namespace
klass.include(namespace.railtie_routes_url_helpers(include_path_helpers))
else
klass.include(routes.url_helpers(include_path_helpers))
end
unless klass._routes.equal?(actual_routes)
klass.redefine_singleton_method(:_routes) { actual_routes }
klass.include(Module.new do
define_method(:_routes) { @_routes || actual_routes }
end)
end
end
end
end
|