Module: SimplySerializable::Mixin::ClassMethods

Defined in:
lib/simply_serializable/mixin.rb

Instance Method Summary collapse

Instance Method Details

#inherited(subclass) ⇒ Object



6
7
8
9
# File 'lib/simply_serializable/mixin.rb', line 6

def inherited(subclass)
  subclass.serialize(**serializable_config)
  super(subclass)
end

#serializable_configObject



27
28
29
30
31
32
33
# File 'lib/simply_serializable/mixin.rb', line 27

def serializable_config
  @serializable_config ||= {
    attributes: [],
    except: nil,
    only: nil
  }
end

#serialize(attributes: [], except: nil, only: nil, **keywords) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/simply_serializable/mixin.rb', line 11

def serialize(attributes: [], except: nil, only: nil, **keywords)
  serializable_config[:attributes] = serializable_config[:attributes] |= attributes

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

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

  serializable_config.merge!(keywords)
end