Module: Codecs::ArrayCodec

Defined in:
lib/emery/codecs.rb

Class Method Summary collapse

Class Method Details

.applicable?(type) ⇒ Boolean

Returns:



29
30
31
# File 'lib/emery/codecs.rb', line 29

def self.applicable?(type)
  type.instance_of? T::ArrayType
end

.deserialize(type, json_value) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/emery/codecs.rb', line 32

def self.deserialize(type, json_value)
  T.check_not_nil(type, json_value)
  if !json_value.is_a?(Array)
    raise JsonerError.new("JSON value type #{json_value.class} is not Array")
  end
  json_value.map { |item_json_value| Jsoner.deserialize(type.item_type, item_json_value) }
end

.serialize(type, value) ⇒ Object



39
40
41
42
43
44
# File 'lib/emery/codecs.rb', line 39

def self.serialize(type, value)
  if !value.is_a?(Array)
    raise JsonerError.new("Value type #{json_value.class} is not Array")
  end
  value.map { |item| Jsoner.serialize(type.item_type, item) }
end