Class: TypedParams::Parameterizer

Inherits:
Object
  • Object
show all
Defined in:
lib/typed_params/parameterizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(schema:, parent: nil) ⇒ Parameterizer

Returns a new instance of Parameterizer.



5
6
7
8
# File 'lib/typed_params/parameterizer.rb', line 5

def initialize(schema:, parent: nil)
  @schema = schema
  @parent = parent
end

Instance Method Details

#call(key: ROOT, value:) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/typed_params/parameterizer.rb', line 10

def call(key: ROOT, value:)
  return value if
    value.is_a?(Parameter)

  return nil if
    key == ROOT &&
    value.nil?

  case schema.children
  when Array
    parameterize_array_schema(key:, value:)
  when Hash
    parameterize_hash_schema(key:, value:)
  else
    parameterize_value(key:, value:)
  end
end