Class: DataMapper::Query::Conditions::Comparison

Inherits:
Object
  • Object
show all
Defined in:
lib/dm-core/query/conditions/comparison.rb

Overview

An abstract class which provides easy access to comparison operators

Examples:

Creating a new comparison

Comparison.new(:eql, MyClass.my_property, "value")

Class Method Summary collapse

Class Method Details

.new(slug, subject, value) ⇒ DataMapper::Query::Conditions::AbstractComparison

Creates a new Comparison instance

The returned instance will be suitable for matching the given subject (property or relationship) against the value.

Examples:

Comparison.new(:eql, MyClass.properties[:id], 1)

Raises:

API:

  • semipublic



56
57
58
59
60
# File 'lib/dm-core/query/conditions/comparison.rb', line 56

def self.new(slug, subject, value)
  raise ArgumentError, "No Comparison class for #{slug.inspect} has been defined" unless (klass = comparison_class(slug))

  klass.new(subject, value)
end

.slugsArray<Symbol>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns an array of all slugs registered with Comparison

API:

  • private



67
68
69
# File 'lib/dm-core/query/conditions/comparison.rb', line 67

def self.slugs
  AbstractComparison.descendants.map(&:slug)
end