module CustomRailsSettingsCached
Constants
- VERSION
Public Instance Methods
default_value(name)
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 54 def default_value(name) default_setting_key = "#{self.class.name.to_s.underscore}.#{name.to_s.underscore}" Setting[default_setting_key] end
get_settings(name)
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 12 def get_settings(name) if has_associations_with_rails_settings st = settings.find_by var: setting_key(name) st ? st.value : default_value(name) else Setting[setting_key(name)] end end
has_associations_with_rails_settings()
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 48 def has_associations_with_rails_settings return @has_rails_settings unless @has_rails_settings.nil? associations = self.class.reflect_on_all_associations(:has_many) @has_rails_settings = associations.any? { |a| a.name == :settings } end
init_setting(name, value)
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 21 def init_setting(name, value) if has_associations_with_rails_settings st = settings.find_or_initialize_by(var: setting_key(name)) st.value = value st.save else Setting[setting_key(name)] = value end end
pretty_key(key_name)
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 44 def pretty_key(key_name) key_name.split('.').last end
setting_key(name)
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 31 def setting_key(name) return name.to_s.underscore if has_associations_with_rails_settings "#{self.class.name}.#{self.id}.#{name}".underscore end
settings_as_object()
click to toggle source
# File lib/custom_rails_settings_cached.rb, line 36 def settings_as_object data = { partner_id: self.id } settings.each do |st| data[pretty_key(st.var)] = st.value end OpenStruct.new data end