class HalApi::Controller::Filtering::FilterParams

Public Class Methods

new(filters = {}) click to toggle source
# File lib/hal_api/controller/filtering.rb, line 12
def initialize(filters = {})
  @filters = filters.with_indifferent_access
end

Public Instance Methods

method_missing(m, *args, &_block) click to toggle source
# File lib/hal_api/controller/filtering.rb, line 16
def method_missing(m, *args, &_block)
  if @filters.key?(m) && args.empty?
    @filters[m]
  elsif m.to_s[-1] == '?' && args.empty? && @filters.key?(m.to_s.chop)
    !!@filters[m.to_s.chop]
  else
    msg = "Unknown filter param '#{m}'"
    hint = "Valid filters are: #{@filters.keys.join(' ')}"
    raise HalApi::Errors::UnknownFilterError.new(msg, hint)
  end
end