Class: Compendium::Presenters::Settings::Query
- Inherits:
-
Object
- Object
- Compendium::Presenters::Settings::Query
- Defined in:
- app/classes/compendium/presenters/settings/query.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#query ⇒ Object
readonly
Returns the value of attribute query.
Instance Method Summary collapse
-
#initialize(query = nil) ⇒ Query
constructor
A new instance of Query.
- #method_missing(name, *args, &block) ⇒ Object
- #update(&block) ⇒ Object
Constructor Details
#initialize(query = nil) ⇒ Query
Returns a new instance of Query.
8 9 10 11 |
# File 'app/classes/compendium/presenters/settings/query.rb', line 8 def initialize(query = nil) @settings = {}.with_indifferent_access @query = query end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/classes/compendium/presenters/settings/query.rb', line 17 def method_missing(name, *args, &block) if block_given? @settings[name] = block.call(*args) elsif !args.empty? @settings[name] = args.length == 1 ? args.first : args elsif name.to_s.end_with?('?') prefix = name.to_s.gsub(/\?\z/, '') @settings.key?(prefix) else @settings[name] end end |
Instance Attribute Details
#query ⇒ Object (readonly)
Returns the value of attribute query.
3 4 5 |
# File 'app/classes/compendium/presenters/settings/query.rb', line 3 def query @query end |
Instance Method Details
#update(&block) ⇒ Object
13 14 15 |
# File 'app/classes/compendium/presenters/settings/query.rb', line 13 def update(&block) instance_exec(self, &block) end |