class Groupped::Settings::Group

Attributes

group_name[RW]

Public Class Methods

attribute_names() click to toggle source
# File lib/groupped/settings/group.rb, line 19
def self.attribute_names
  attribute_types.keys
end
load(target: nil, settings: {}) click to toggle source
# File lib/groupped/settings/group.rb, line 27
def self.load(target: nil, settings: {})
  Groupped::Settings[self.group_name, self, target: target, settings: settings]
end
new(record) click to toggle source
Calls superclass method
# File lib/groupped/settings/group.rb, line 31
def initialize(record)
  @settings_record = record
  super(self.class.sanitize(record.settings))
  clear_changes_information
end
sanitize(settings) click to toggle source
# File lib/groupped/settings/group.rb, line 23
def self.sanitize(settings)
  Record.sanitize(settings).slice(*self.attribute_names)
end

Public Instance Methods

==(other) click to toggle source
# File lib/groupped/settings/group.rb, line 49
def ==(other)
  group_name == other.group_name && attributes == other.attributes
end
group_name() click to toggle source
# File lib/groupped/settings/group.rb, line 45
def group_name
  self.class.group_name
end
save() click to toggle source
# File lib/groupped/settings/group.rb, line 53
def save
  save!
rescue StandardError => e
  false
end
save!() click to toggle source
# File lib/groupped/settings/group.rb, line 59
def save!
  validate!
  _save!
  clear_changes_information
  true
end
to_h() click to toggle source
# File lib/groupped/settings/group.rb, line 37
def to_h
  serializable_hash
end
to_hash() click to toggle source
# File lib/groupped/settings/group.rb, line 41
def to_hash
  serializable_hash
end

Private Instance Methods

_make_changes(changes) click to toggle source
# File lib/groupped/settings/group.rb, line 68
def _make_changes(changes)
  changes.each_with_object({}) do |(key, (o, n)), ret|
    ret[key.to_s.downcase] = n if o != n
  end
end
_save!() click to toggle source
# File lib/groupped/settings/group.rb, line 74
def _save!
  @settings_record.with_lock do
    @settings_record.settings.merge!(_make_changes(changes))
    @settings_record.save!
  end
end