Module: Torque::PostgreSQL::PredicateBuilder
- Defined in:
- lib/torque/postgresql/predicate_builder.rb,
lib/torque/postgresql/predicate_builder/array_handler.rb,
lib/torque/postgresql/predicate_builder/ltree_handler.rb,
lib/torque/postgresql/predicate_builder/regexp_handler.rb,
lib/torque/postgresql/predicate_builder/struct_handler.rb,
lib/torque/postgresql/predicate_builder/composite_handler.rb,
lib/torque/postgresql/predicate_builder/arel_attribute_handler.rb,
lib/torque/postgresql/predicate_builder/enumerator_lazy_handler.rb
Defined Under Namespace
Modules: ArrayHandler Classes: ArelAttributeHandler, CompositeHandler, EnumeratorLazyHandler, LtreeHandler, RegexpHandler, StructHandler
Constant Summary collapse
- ARRAY_OID =
ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array
Instance Method Summary collapse
-
#build(attribute, value, operator = nil) ⇒ Object
Values described as a hash of columns or properties are turned into conditions over the column that holds them.
- #initialize ⇒ Object
Instance Method Details
#build(attribute, value, operator = nil) ⇒ Object
Values described as a hash of columns or properties are turned into conditions over the column that holds them. Whole values are left to the regular handlers, so that they are compared as a single value
38 39 40 41 42 43 44 |
# File 'lib/torque/postgresql/predicate_builder.rb', line 38 def build(attribute, value, operator = nil) type = table.type(attribute.name) handler = handler_for_document(type, value) return super if handler.nil? handler.new(self).call(attribute, type, value) end |
#initialize ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/torque/postgresql/predicate_builder.rb', line 17 def initialize(*) super handlers = Array.wrap(PostgreSQL.config.predicate_builder.enabled).inquiry if handlers.regexp? register_handler(Regexp, RegexpHandler.new(self)) end if handlers.enumerator_lazy? register_handler(Enumerator::Lazy, EnumeratorLazyHandler.new(self)) end if handlers.arel_attribute? register_handler(::Arel::Attributes::Attribute, ArelAttributeHandler.new(self)) end end |