class Braintree::AdvancedSearch
Public Class Methods
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
Source
# File lib/braintree/advanced_search.rb, line 131 def self.date_range_fields(*fields) _create_field_accessors(fields, DateRangeNode) end
Source
# File lib/braintree/advanced_search.rb, line 135 def self.ends_with_fields(*fields) _create_field_accessors(fields, EndsWithNode) end
Source
# File lib/braintree/advanced_search.rb, line 99 def self.equality_fields(*fields) _create_field_accessors(fields, EqualityNode) end
Source
# File lib/braintree/advanced_search.rb, line 103 def self.is_fields(*fields) _create_field_accessors(fields, IsNode) end
Source
# File lib/braintree/advanced_search.rb, line 123 def self.key_value_fields(*fields) _create_field_accessors(fields, KeyValueNode) end
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
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
Source
# File lib/braintree/advanced_search.rb, line 107 def self.partial_match_fields(*fields) _create_field_accessors(fields, PartialMatchNode) end
Source
# File lib/braintree/advanced_search.rb, line 127 def self.range_fields(*fields) _create_field_accessors(fields, RangeNode) end
Source
# File lib/braintree/advanced_search.rb, line 95 def self.text_fields(*fields) _create_field_accessors(fields, TextNode) end
Public Instance Methods
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