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
34
35
36
37
38
|
# File 'lib/localizable_routes/extensions/action_dispatch/named_route_collection.rb', line 7
def define_localized_url_helper(name, localization)
%w(path url).each do |type|
helper = :"#{name}_#{type}"
if Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 2
target = instance_variable_get("@#{type}_helpers_module")
else
target = @module
end
target.remove_possible_method helper
target.module_eval do
define_method helper do |*args|
options = args.
strategy = localization[:strategy]
if strategy == :param
locale = (options[:locale] || url_options[:locale] || I18n.locale)
else
key = (options[strategy] || url_options[strategy])
locale = localization[:locales][key.to_s]
end
send "#{name}_#{locale}_#{type}", *(args << options)
end
end
if Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 2
instance_variable_get("@#{type}_helpers") << helper
else
helpers << helper
end
end
end
|