Module: SimplySerializable::Mixin

Defined in:
lib/simply_serializable/mixin.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



33
34
35
36
# File 'lib/simply_serializable/mixin.rb', line 33

def self.included(base)
  base.include(Fingerprintable::Mixin)
  base.extend(ClassMethods)
end

Instance Method Details

#serializable_idObject



51
52
53
# File 'lib/simply_serializable/mixin.rb', line 51

def serializable_id
  "#{serializable_type}/#{fingerprint}"
end

#serializable_typeObject



55
56
57
# File 'lib/simply_serializable/mixin.rb', line 55

def serializable_type
  self.class.name
end

#serialize(cache: {}) ⇒ Object



38
39
40
# File 'lib/simply_serializable/mixin.rb', line 38

def serialize(cache: {})
  serializer(cache: cache).serialize
end

#serializer(cache: {}) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/simply_serializable/mixin.rb', line 42

def serializer(cache: {})
  Serializer.new(
    **self.class.serializable_config.merge(
      cache: cache,
      object: self
    )
  )
end