Sha256: 3804e2bf800371b6763f0a107bcffb54cbe04930da9be78cf5a7214225198963
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
require "racym/version" def racym(*args) value = args.map(&:to_s).join('.').split('.').inject(Rails.application.config) { |r, m| r = r.send(m); r } if value.is_a?(Proc) value.call else value end end 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 def racym_undo! return unless Rails.application.config.racym_cache.is_a? Hash Rails.application.config.racym_cache.each do |key, changes| config_methods = key.split('.') racym_set(key, changes.first) end Rails.application.config.racym_cache = nil end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
racym-0.0.5 | lib/racym.rb |
racym-0.0.4 | lib/racym.rb |
racym-0.0.3 | lib/racym.rb |