Module: TypedParameter::PermitFieldGenerator

Defined in:
lib/typed_parameter/permit_field_generator.rb

Class Method Summary collapse

Class Method Details

.generate(name, type) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/typed_parameter/permit_field_generator.rb', line 4

def generate(name, type)
  type_class = [type].flatten.first

  props = if type.is_a? Array
            type_class.in?(TypedParameter::ParameterTypes.types) ? [] : generate_properties(type_class)
          else
            generate_properties(type_class)
          end

  props ? [[name, props]].to_h : name
end

.generate_properties(type) ⇒ Object



16
17
18
19
20
21
# File 'lib/typed_parameter/permit_field_generator.rb', line 16

def generate_properties(type)
  return if type.in? TypedParameter::ParameterTypes.types
  return type.keys if type.is_a? Hash

  type.fields
end