Class: RailsSorbetEnum::Serializer

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/rails_sorbet_enum/serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(object_class) ⇒ Serializer

Returns a new instance of Serializer.



9
10
11
# File 'lib/rails_sorbet_enum/serializer.rb', line 9

def initialize(object_class)
  @object_class = object_class
end

Instance Method Details

#dump(obj) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/rails_sorbet_enum/serializer.rb', line 14

def dump(obj)
  case obj
  when T::Enum
    obj.serialize
  else
    raise ActiveRecord::SerializationTypeMismatch,
      "expected #{@object_class.name} and got #{obj.class}"
  end
end

#load(str) ⇒ Object



25
26
27
28
29
# File 'lib/rails_sorbet_enum/serializer.rb', line 25

def load(str)
  return if str.nil?

  @object_class.try_deserialize(str)
end