module TypedParameter::PermitFieldGenerator

Public Class Methods

generate(name, type) click to toggle source
# 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) click to toggle source
# 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