class ActiveadminSettingsCached::Model
Attributes
attributes[R]
to_hash[R]
Public Class Methods
new(args = {})
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 9 def initialize(args = {}) @attributes = {} args[:model_name] = args[:model_name].constantize if args[:model_name].is_a? String args[:display] = default_attributes[:display].merge!(args[:display]) if args[:display] assign_attributes(merge_attributes(args)) end
Public Instance Methods
[](param)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 67 def [](param) settings_model[param] end
[]=(param, value)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 71 def []=(param, value) settings_model[param] = value end
defaults()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 51 def defaults settings_model.respond_to?(:defaults) ? settings_model.defaults : ::RailsSettings::Default end
defaults_keys()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 57 def defaults_keys settings_model.respond_to?(:defaults) ? settings_model.defaults.keys : ::RailsSettings::Default.instance.keys end
display()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 63 def display attributes[:display] end
field_name(settings_name)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 16 def field_name(settings_name) has_key? ? "#{attributes[:key]}.#{settings_name}" : settings_name end
field_options(settings_name, key_name)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 20 def field_options(settings_name, key_name) default_value = defaults[settings_name] value = settings[key_name] input_opts = if default_value.is_a?(Array) { collection: default_value, selected: value, } elsif (default_value.is_a?(TrueClass) || default_value.is_a?(FalseClass)) && display[settings_name].to_s == 'boolean' { input_html: { checked: value }, label: '', checked_value: 'true', unchecked_value: 'false' } else { input_html: { value: value, placeholder: default_value }, } end { as: display[settings_name], label: false } .merge!(input_opts) end
persisted?()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 83 def persisted? false end
save(key, value)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 75 def save(key, value) if has_key? settings_model.merge!(attributes[:key], { clean_key(key) => value }) else self[key] = value end end
settings()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 44 def settings data = has_key? ? load_settings_by_key : load_settings return unless data ::ActiveSupport::OrderedHash[data.to_a.sort { |a, b| a.first <=> b.first }] end
Protected Instance Methods
assign_attributes(args = {})
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 107 def assign_attributes(args = {}) @attributes.merge!(args) end
clean_key(key)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 103 def clean_key(key) key.is_a?(Symbol) ? key : "#{key.sub("#{attributes[:key]}.", '')}" end
default_attributes()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 111 def default_attributes { starting_with: nil, key: nil, model_name: ::ActiveadminSettingsCached.config.model_name, display: ::ActiveadminSettingsCached.config.display } end
has_key?()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 99 def has_key? attributes[:key].present? end
load_settings()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 91 def load_settings settings_model.public_send(meth, attributes[:starting_with]) end
load_settings_by_key()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 95 def load_settings_by_key self[attributes[:key]] end
merge_attributes(args)
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 120 def merge_attributes(args) default_attributes.each_with_object({}) do |(k, v), h| h[k] = args[k] || v end end
meth()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 130 def meth if Rails.version >= '4.1.0' :get_all else :all end end
settings_model()
click to toggle source
# File lib/activeadmin_settings_cached/model.rb, line 126 def settings_model attributes[:model_name] end