Class DataMapper::Query::Conditions::AbstractComparison
In: lib/dm-core/query/conditions/comparison.rb
Parent: Object

A base class for the various comparison classes.

Methods

descendants   inherited   inspect   matches?   negated?   new   property?   relationship?   slug   slug   to_s   valid?   value  

Attributes

dumped_value  [R]  @api private
loaded_value  [R]  The loaded/typecast value

In the case of primitive types, this will be the same as value, however when using primitive property this stores the loaded value.

If writing an adapter, you should use value, while plugin authors should refer to loaded_value.

@return [Object]

@api semipublic

parent  [RW]  @api semipublic
subject  [R]  The property or relationship which is being matched against

@return [Property, Associations::Relationship]

@api semipublic

Public Class methods

Keeps track of AbstractComparison subclasses (used in Comparison)

@return [Set<AbstractComparison>] @api private

Registers AbstractComparison subclasses (used in Comparison)

@api private

Creates a new AbstractComparison instance with subject and value

@param [Property, Associations::Relationship] subject

  The subject of the comparison - the value of the subject will be
  matched against the given value parameter.

@param [Object] value

  The value for the comparison.

@api semipublic

Setter/getter: allows subclasses to easily set their slug

@param [Symbol] slug

  The slug to be set for this class. Passing nil returns the current
  value instead.

@return [Symbol]

  The current slug set for the Comparison.

@example Creating a MyComparison compairson with slug :exact.

  class MyComparison < AbstractComparison
    slug :exact
  end

@api semipublic

Public Instance methods

Returns a human-readable representation of this object

@return [String]

@api semipublic

Test that the record value matches the comparison

@param [Resource, Hash] record

  The record containing the value to be matched

@return [Boolean]

@api semipublic

@api private

Returns whether the subject is a Property

@return [Boolean]

@api semipublic

Returns whether the subject is a Relationship

@return [Boolean]

@api semipublic

Return the comparison class slug

@return [Symbol]

  the comparison class slug

@api private

Returns a string version of this Comparison object

@example

  Comparison.new(:==, MyClass.my_property, "value")
  # => "my_property == value"

@return [String]

@api semipublic

Tests that the Comparison is valid

Subclasses can overload this to customise the means by which they determine the validity of the comparison. valid? is called prior to performing a query on the repository: each Comparison within a Query must be valid otherwise the query will not be performed.

@see DataMapper::Property#valid? @see DataMapper::Associations::Relationship#valid?

@return [Boolean]

@api semipublic

Value to be compared with the subject

This value is compared against that contained in the subject when filtering collections, or the value in the repository when performing queries.

In the case of primitive property, this is the value as it is stored in the repository.

@return [Object]

@api semipublic

[Validate]