Class: HalApi::Controller::Filtering::FilterParams
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- HalApi::Controller::Filtering::FilterParams
- Defined in:
- lib/hal_api/controller/filtering.rb
Instance Method Summary collapse
-
#initialize(filters = {}) ⇒ FilterParams
constructor
A new instance of FilterParams.
- #method_missing(m, *args, &_block) ⇒ Object
Constructor Details
#initialize(filters = {}) ⇒ FilterParams
Returns a new instance of FilterParams.
12 13 14 |
# File 'lib/hal_api/controller/filtering.rb', line 12 def initialize(filters = {}) @filters = filters.with_indifferent_access end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &_block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# 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 |