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
39
|
# File 'lib/racym.rb', line 13
def racym_set(*args)
Rails.application.config.racym_cache ||= {}
after = args.pop
before = racym(*args)
token = args.map(&:to_s).join('.').split('.').join('.')
if Rails.application.config.racym_cache[token]
before = Rails.application.config.racym_cache[token].first
end
config_methods = token.split('.')
config_methods.inject([config_methods.last, Rails.application.config]) do |last_and_rails_config, current_method|
last, rails_config = last_and_rails_config
rails_config = if last == current_method
rails_config.send("#{current_method}=", after)
else
rails_config = rails_config.send(current_method)
end
[last, rails_config]
end
Rails.application.config.racym_cache[token] = [before, after]
end
|