Class: Compendium::Presenters::Settings::Query

Inherits:
Object
  • Object
show all
Defined in:
app/classes/compendium/presenters/settings/query.rb

Direct Known Subclasses

Table

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#queryObject (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