class Reynard::GroupedParameters
Groups parameters based on the parameters specification.
Public Class Methods
new(specification, params)
click to toggle source
# File lib/reynard/grouped_parameters.rb, line 6 def initialize(specification, params) @specification = pivot(specification) @params = params end
Public Instance Methods
to_h()
click to toggle source
# File lib/reynard/grouped_parameters.rb, line 11 def to_h @params.each_with_object({}) do |(name, value), grouped| group_name = @specification.dig(name, 'in') || 'query' grouped[group_name] ||= {} grouped[group_name].merge!({ name => value }) end end
Private Instance Methods
pivot(specification)
click to toggle source
# File lib/reynard/grouped_parameters.rb, line 21 def pivot(specification) return {} unless specification specification.each_with_object({}) do |attribute, pivot| pivot[attribute['name']] = attribute end end