module LunaPark::Extensions::Serializable::ClassMethods

Public Instance Methods

serializable_attributes(*names) click to toggle source

Describe methods list that will be used for serialization via `#to_h` and `#serialize` methods

# File lib/luna_park/extensions/serializable.rb, line 32
def serializable_attributes(*names)
  raise 'No attributes given' if names.compact.empty?

  @serializable_attributes_list ||= []
  @serializable_attributes_list |= names
end
serializable_attributes_list() click to toggle source

List of methods that will be used for serialization via `#to_h` and `#serialize` methods

# File lib/luna_park/extensions/serializable.rb, line 41
def serializable_attributes_list
  return @serializable_attributes_list if @serializable_attributes_list

  raise Errors::NotConfigured,
        "You must set at least one serializable attribute using #{self}.serializable_attributes(*names)"
end

Private Instance Methods

inherited(child) click to toggle source
Calls superclass method
# File lib/luna_park/extensions/serializable.rb, line 50
def inherited(child)
  super
  child.instance_variable_set(:@serializable_attributes_list, @serializable_attributes_list&.dup)
end