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.simply_serialize(**simply_serializable_config)
  super(subclass)
end

#simply_serializable_configObject



27
28
29
30
31
32
33
# 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) ⇒ 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 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