Class: Getto::Params::Search::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/getto/params/search.rb

Defined Under Namespace

Classes: Checker, Converter

Instance Method Summary collapse

Constructor Details

#initialize(query:) ⇒ Query

Returns a new instance of Query.



97
98
99
# File 'lib/getto/params/search.rb', line 97

def initialize(query:)
  @query = query
end

Instance Method Details

#to_h(convert:, check:) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/getto/params/search.rb', line 101

def to_h(convert:, check:)
  converters = {}
  if convert
    convert.call Converter.new(converters)
  end

  checkers = {}
  if check
    check.call Checker.new(checkers)
  end

  query = @query.map{|key,search|
    if converter = converters[key.to_s]
      [key.to_s, converter.call(search)]
    else
      [key.to_s, search]
    end
  }.to_h

  checkers.map{|key,checker|
    if search = query[key]
      if checker.call(search)
        [key, search]
      end
    end
  }.compact.to_h.transform_keys(&:to_sym)
end