Class: Skit::Serialization::Processor::Date
- Inherits:
-
Base
- Object
- Base
- Skit::Serialization::Processor::Date
show all
- Extended by:
- T::Sig
- Defined in:
- lib/skit/serialization/processor/date.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#initialize, #traverse
Class Method Details
.handles?(type_spec) ⇒ Boolean
13
14
15
|
# File 'lib/skit/serialization/processor/date.rb', line 13
def self.handles?(type_spec)
type_spec == ::Date
end
|
Instance Method Details
#deserialize(value, path: Path.new) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/skit/serialization/processor/date.rb', line 25
def deserialize(value, path: Path.new)
case value
when ::Date
value
when ::String
::Date.iso8601(value)
else
raise DeserializeError.new("Expected Date or String, got #{value.class}", path: path)
end
rescue ArgumentError => e
raise DeserializeError.new("Failed to deserialize Date: #{e.message}", path: path)
end
|
#serialize(value, path: Path.new) ⇒ Object
18
19
20
21
22
|
# File 'lib/skit/serialization/processor/date.rb', line 18
def serialize(value, path: Path.new)
raise SerializeError.new("Expected Date, got #{value.class}", path: path) unless value.is_a?(::Date)
value.iso8601
end
|