Class: ActiveadminSettingsCached::Model

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model
Defined in:
lib/activeadmin_settings_cached/model.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Model

Returns a new instance of Model.



7
8
9
10
11
12
# File 'lib/activeadmin_settings_cached/model.rb', line 7

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

Instance Attribute Details

#attributesObject (readonly) Also known as: to_hash

Returns the value of attribute attributes.



5
6
7
# File 'lib/activeadmin_settings_cached/model.rb', line 5

def attributes
  @attributes
end

Instance Method Details

#[](param) ⇒ Object



51
52
53
# File 'lib/activeadmin_settings_cached/model.rb', line 51

def [](param)
  settings_model[param]
end

#[]=(param, value) ⇒ Object



55
56
57
# File 'lib/activeadmin_settings_cached/model.rb', line 55

def []=(param, value)
  settings_model[param] = value
end

#defaultsObject



43
44
45
# File 'lib/activeadmin_settings_cached/model.rb', line 43

def defaults
  settings_model.defaults
end

#displayObject



47
48
49
# File 'lib/activeadmin_settings_cached/model.rb', line 47

def display
  attributes[:display]
end

#field_options(settings_name) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/activeadmin_settings_cached/model.rb', line 14

def field_options(settings_name)
  default_value = defaults[settings_name]
  value = settings[settings_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?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/activeadmin_settings_cached/model.rb', line 59

def persisted?
  false
end

#settingsObject



38
39
40
41
# File 'lib/activeadmin_settings_cached/model.rb', line 38

def settings
  data = load_settings
  ActiveSupport::OrderedHash[data.to_a.sort { |a, b| a.first <=> b.first }] if data
end