Class: Yandex::Direct::SelectionCriteria

Inherits:
Object
  • Object
show all
Defined in:
lib/yandex/direct/selection_criteria.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#objectObject

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, options = nil)
  puts "[#{self.object.name}](#{method}): #{self.to_param}"
  self.object.method(method).call(*[self, options].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_paramObject



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