Class: IknowParams::Serializer::Nullable

Inherits:
IknowParams::Serializer show all
Defined in:
lib/iknow_params/serializer/nullable.rb

Overview

Serialize a potentially nil application type to JSON types. Does not support fully rendering to/from a string.

Instance Attribute Summary collapse

Attributes inherited from IknowParams::Serializer

#clazz

Instance Method Summary collapse

Methods inherited from IknowParams::Serializer

for, for!, json_value?, #matches_type!, singleton

Constructor Details

#initialize(serializer) ⇒ Nullable

Returns a new instance of Nullable.



32
33
34
# File 'lib/iknow_params/serializer/nullable.rb', line 32

def initialize(serializer)
  @serializer = serializer
end

Instance Attribute Details

#serializerObject (readonly)

Returns the value of attribute serializer.



6
7
8
# File 'lib/iknow_params/serializer/nullable.rb', line 6

def serializer
  @serializer
end

Instance Method Details

#dump(val, json: false) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/iknow_params/serializer/nullable.rb', line 16

def dump(val, json: false)
  if val.nil?
    nil
  else
    serializer.dump(val, json: json)
  end
end

#json_value?Boolean

Returns:



28
29
30
# File 'lib/iknow_params/serializer/nullable.rb', line 28

def json_value?
  true
end

#load(val) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/iknow_params/serializer/nullable.rb', line 8

def load(val)
  if val.nil?
    nil
  else
    serializer.load(val)
  end
end

#matches_type?(val) ⇒ Boolean

Returns:



24
25
26
# File 'lib/iknow_params/serializer/nullable.rb', line 24

def matches_type?(val)
  val.nil? || super
end