module SimplySerializable::Mixin::ClassMethods

Public Instance Methods

inherited(subclass) click to toggle source
Calls superclass method
# File lib/simply_serializable/mixin.rb, line 6
def inherited(subclass)
  subclass.simply_serialize(**simply_serializable_config)
  super(subclass)
end
simply_serializable_config() click to toggle source
# File lib/simply_serializable/mixin.rb, line 27
def simply_serializable_config
  @simply_serializable_config ||= {
    attributes: [],
    except: nil,
    only: nil
  }
end
simply_serialize(attributes: [], except: nil, only: nil, **keywords) click to toggle source
# File lib/simply_serializable/mixin.rb, line 11
def simply_serialize(attributes: [], except: nil, only: nil, **keywords)
  simply_serializable_config[:attributes] = simply_serializable_config[:attributes] |= attributes

  unless except.nil?
    simply_serializable_config[:except] ||= []
    simply_serializable_config[:except] = simply_serializable_config[:except] |= except
  end

  unless only.nil?
    simply_serializable_config[:only] ||= []
    simply_serializable_config[:only] = simply_serializable_config[:only] |= only
  end

  simply_serializable_config.merge!(keywords)
end