module Paramore::PermittedParameterArgument

Public Instance Methods

flat_parameters(parsed) click to toggle source
# File lib/paramore/permitted_parameter_argument.rb, line 29
def flat_parameters(parsed)
  parsed.select { |arg| arg.is_a?(Symbol) }
end
merge_hashes(parsed) click to toggle source
# File lib/paramore/permitted_parameter_argument.rb, line 25
def merge_hashes(parsed)
  (flat_parameters(parsed) + nested_parameters(parsed)).compact
end
nested_parameters(parsed) click to toggle source
# File lib/paramore/permitted_parameter_argument.rb, line 33
def nested_parameters(parsed)
  [parsed.reject { |arg| arg.is_a?(Symbol) }.reduce(:merge)]
end
parse(types_definition) click to toggle source
# File lib/paramore/permitted_parameter_argument.rb, line 5
def parse(types_definition)
  merge_hashes(
    types_definition.map do |key, definition|
      case definition
      when Hash
        { key => merge_hashes(parse(definition)) }
      when Paramore::FieldSchema
        case definition.type
        when Array
          { key => [] }
        when Hash
          { key => merge_hashes(parse(definition.type)) }
        else
          key
        end
      end
    end
  )
end