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