Class: Legato::Filter
- Inherits:
-
Object
- Object
- Legato::Filter
- Defined in:
- lib/legato/filter.rb
Constant Summary collapse
- OPERATORS =
{ # metrics :eql => '==', :not_eql => '!=', :gt => '>', :gte => '>=', :lt => '<', :lte => '<=', # dimensions :matches => '==', :does_not_match => '!=', :substring => '=@', :not_substring => '!@', :contains => '=~', # regex :does_not_contain => '!~' # regex # :desc => '-', # :descending => '-' }
Instance Attribute Summary collapse
-
#field ⇒ Object
Returns the value of attribute field.
-
#join_character ⇒ Object
Returns the value of attribute join_character.
-
#operator ⇒ Object
Returns the value of attribute operator.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#escaped_value ⇒ Object
escape comma and semicolon in value to differentiate from those used as join characters for OR/AND.
- #google_field ⇒ Object
- #google_operator ⇒ Object
-
#initialize(query, field, operator, value, join_character) ⇒ Filter
constructor
A new instance of Filter.
- #join_with(param) ⇒ Object
- #to_param ⇒ Object
- #tracking_scope ⇒ Object
Constructor Details
#initialize(query, field, operator, value, join_character) ⇒ Filter
Returns a new instance of Filter.
24 25 26 27 28 29 30 31 |
# File 'lib/legato/filter.rb', line 24 def initialize(query, field, operator, value, join_character) @query = query self.field = field self.operator = operator self.value = value self.join_character = join_character # if nil, will be overridden by Query#apply_filter end |
Instance Attribute Details
#field ⇒ Object
Returns the value of attribute field.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def field @field end |
#join_character ⇒ Object
Returns the value of attribute join_character.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def join_character @join_character end |
#operator ⇒ Object
Returns the value of attribute operator.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def operator @operator end |
#value ⇒ Object
Returns the value of attribute value.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def value @value end |
Instance Method Details
#==(other) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/legato/filter.rb', line 62 def ==(other) field == other.field && operator == other.operator && value == other.value && join_character == other.join_character end |
#escaped_value ⇒ Object
escape comma and semicolon in value to differentiate from those used as join characters for OR/AND
47 48 49 50 51 |
# File 'lib/legato/filter.rb', line 47 def escaped_value # backslash is escaped in strings # oauth will cgi/uri escape for us value.to_s.gsub(/([,;])/) {|c| '\\'+c} end |
#google_field ⇒ Object
37 38 39 |
# File 'lib/legato/filter.rb', line 37 def google_field Legato.to_ga_string(field, tracking_scope) end |
#google_operator ⇒ Object
41 42 43 |
# File 'lib/legato/filter.rb', line 41 def google_operator OPERATORS[operator] end |
#join_with(param) ⇒ Object
57 58 59 60 |
# File 'lib/legato/filter.rb', line 57 def join_with(param) param << join_character unless param.nil? param.nil? ? to_param : (param << to_param) end |
#to_param ⇒ Object
53 54 55 |
# File 'lib/legato/filter.rb', line 53 def to_param [google_field, google_operator, escaped_value].join end |
#tracking_scope ⇒ Object
33 34 35 |
# File 'lib/legato/filter.rb', line 33 def tracking_scope @query.tracking_scope end |