module JSONAPI::SimpleClient::QueryParams

Public Class Methods

parse(params) click to toggle source

@param params [Hash] @return [Hash]

# File lib/jsonapi/simple_client/query_params.rb, line 9
def parse(params)
  params.each_with_object({}) do |(key, value), hash|
    hash.merge!(
      value.is_a?(Hash) ? parse_nested_param(key, value) : { key => parse_param(value) }
    )
  end
end

Private Class Methods

parse_nested_param(root, value) click to toggle source

@param root [String] @param value [Hash] @return [Hash]

# File lib/jsonapi/simple_client/query_params.rb, line 22
def parse_nested_param(root, value)
  value.map { |key, nested_value| ["#{root}[#{key}]", parse_param(nested_value)] }.to_h
end
parse_param(value) click to toggle source

@param value [Object] @raise [ArgumentError] if value is a Hash. @return [String]

# File lib/jsonapi/simple_client/query_params.rb, line 29
def parse_param(value)
  case value
  when Hash
    raise ArgumentError, "Multi nested params are not supported."
  when Array
    value.join(",")
  else
    value.to_s
  end
end