Class: Yandex::Direct::SelectionCriteria
- Inherits:
-
Object
- Object
- Yandex::Direct::SelectionCriteria
- Defined in:
- lib/yandex/direct/selection_criteria.rb
Instance Attribute Summary collapse
-
#object ⇒ Object
Returns the value of attribute object.
Instance Method Summary collapse
- #call(method, options = nil) ⇒ Object
- #fields(*field_names) ⇒ Object
-
#initialize(object) ⇒ SelectionCriteria
constructor
A new instance of SelectionCriteria.
- #limit(value) ⇒ Object
- #offset(value) ⇒ Object
- #to_param ⇒ Object
- #where(criteria = {}) ⇒ Object
Constructor Details
#initialize(object) ⇒ SelectionCriteria
Returns a new instance of SelectionCriteria.
7 8 9 10 |
# File 'lib/yandex/direct/selection_criteria.rb', line 7 def initialize(object) self.object = object self.field_names = nil end |
Instance Attribute Details
#object ⇒ Object
Returns the value of attribute object.
6 7 8 |
# File 'lib/yandex/direct/selection_criteria.rb', line 6 def object @object end |
Instance Method Details
#call(method, options = nil) ⇒ Object
27 28 29 30 |
# File 'lib/yandex/direct/selection_criteria.rb', line 27 def call(method, = nil) puts "[#{self.object.name}](#{method}): #{self.to_param}" self.object.method(method).call(*[self, ].compact) end |
#fields(*field_names) ⇒ Object
11 12 13 14 |
# File 'lib/yandex/direct/selection_criteria.rb', line 11 def fields(*field_names) self.field_names = Array(field_names) self end |
#limit(value) ⇒ Object
15 16 17 18 |
# File 'lib/yandex/direct/selection_criteria.rb', line 15 def limit(value) self.page_limit = value self end |
#offset(value) ⇒ Object
19 20 21 22 |
# File 'lib/yandex/direct/selection_criteria.rb', line 19 def offset(value) self.page_offset = value self end |
#to_param ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/yandex/direct/selection_criteria.rb', line 31 def to_param params = { 'SelectionCriteria' => (self.selection_criteria.nil? ? {} : self.selection_criteria), } params.merge!({'FieldNames' => Array(self.field_names).flatten.uniq}) unless self.field_names.nil? params.merge!({'Page' => {'Offset' => self.page_offset}}) if self.page_offset params.merge!({'Page' => {'Limit' => self.page_limit}}) if self.page_limit params end |
#where(criteria = {}) ⇒ Object
23 24 25 26 |
# File 'lib/yandex/direct/selection_criteria.rb', line 23 def where(criteria = {}) (self.selection_criteria ||= {}).merge!(criteria) self end |