Class: Ez::Settings::Backend::ActiveRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/ez/settings/backend/active_record.rb

Instance Method Summary collapse

Instance Method Details

#readObject



8
9
10
11
12
13
14
15
# File 'lib/ez/settings/backend/active_record.rb', line 8

def read
  return {} unless try_db_connection && check_settings_table

  ActiveRecordStore.all.each_with_object({}) do |settings, hsh|
    hsh[settings.group] ||= {}
    hsh[settings.group][settings.key] = settings.value
  end.deep_symbolize_keys
end

#write(data) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/ez/settings/backend/active_record.rb', line 17

def write(data)
  return unless try_db_connection && check_settings_table

  group = data.keys[0]
  pairs = data.values[0]
  existing_settings = ActiveRecordStore.where(group: group, key: pairs.keys)
  pairs.map do |key, value|
    record(existing_settings, key, value) || ActiveRecordStore.new(group: group, key: key, value: value)
  end.each(&:save!)
end