class Braintree::AdvancedSearch

Public Class Methods

_create_field_accessors(fields, node_class) click to toggle source
# File lib/braintree/advanced_search.rb, line 139
def self._create_field_accessors(fields, node_class)
  fields.each do |field|
    define_method(field) do |*args|
      raise "An operator is required" unless args.empty?
      node_class.new(field, self)
    end
  end
end
date_range_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 131
def self.date_range_fields(*fields)
  _create_field_accessors(fields, DateRangeNode)
end
ends_with_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 135
def self.ends_with_fields(*fields)
  _create_field_accessors(fields, EndsWithNode)
end
equality_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 99
def self.equality_fields(*fields)
  _create_field_accessors(fields, EqualityNode)
end
is_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 103
def self.is_fields(*fields)
  _create_field_accessors(fields, IsNode)
end
key_value_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 123
def self.key_value_fields(*fields)
  _create_field_accessors(fields, KeyValueNode)
end
multiple_value_field(field, options={}) click to toggle source
# File lib/braintree/advanced_search.rb, line 111
def self.multiple_value_field(field, options={})
  define_method(field) do
    MultipleValueNode.new(field, self, options)
  end
end
multiple_value_or_text_field(field, options={}) click to toggle source
# File lib/braintree/advanced_search.rb, line 117
def self.multiple_value_or_text_field(field, options={})
  define_method(field) do
    MultipleValueOrTextNode.new(field, self, options)
  end
end
new() click to toggle source
# File lib/braintree/advanced_search.rb, line 148
def initialize
  @criteria = {}
end
partial_match_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 107
def self.partial_match_fields(*fields)
  _create_field_accessors(fields, PartialMatchNode)
end
range_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 127
def self.range_fields(*fields)
  _create_field_accessors(fields, RangeNode)
end
text_fields(*fields) click to toggle source
# File lib/braintree/advanced_search.rb, line 95
def self.text_fields(*fields)
  _create_field_accessors(fields, TextNode)
end

Public Instance Methods

add_criteria(key, value) click to toggle source
# File lib/braintree/advanced_search.rb, line 152
def add_criteria(key, value)
  if @criteria[key].is_a?(Hash)
    @criteria[key].merge!(value)
  else
    @criteria[key] = value
  end
end
to_hash() click to toggle source
# File lib/braintree/advanced_search.rb, line 160
def to_hash
  @criteria
end