Class Index [+]

Quicksearch

DataMapper::Query::Conditions::Comparison

An abstract class which provides easy access to comparison operators

@example Creating a new comparison

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

Public Class Methods

new(slug, subject, value) click to toggle source

Creates a new Comparison instance

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

@param [Symbol] slug

  The type of comparison operator required. One of: :eql, :in, :gt,
  :gte, :lt, :lte, :regexp, :like.

@param [Property, Associations::Relationship]

  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.

@return [DataMapper::Query::Conditions::AbstractComparison]

@example

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

@api semipublic

    # File lib/dm-core/query/conditions/comparison.rb, line 58
58:         def self.new(slug, subject, value)
59:           if klass = comparison_class(slug)
60:             klass.new(subject, value)
61:           else
62:             raise ArgumentError, "No Comparison class for #{slug.inspect} has been defined"
63:           end
64:         end
slugs() click to toggle source

Returns an array of all slugs registered with Comparison

@return [Array]

@api private

    # File lib/dm-core/query/conditions/comparison.rb, line 71
71:         def self.slugs
72:           AbstractComparison.descendants.map { |comparison_class| comparison_class.slug }
73:         end

Private Class Methods

comparison_class(slug) click to toggle source

Returns the comparison class identified by the given slug

@param [Symbol] slug

  See slug parameter for Comparison.new

@return [AbstractComparison, nil]

@api private

    # File lib/dm-core/query/conditions/comparison.rb, line 95
95:           def comparison_class(slug)
96:             comparison_classes[slug] ||= AbstractComparison.descendants.detect { |comparison_class| comparison_class.slug == slug }
97:           end
comparison_classes() click to toggle source

Holds comparison subclasses keyed on their slug

@return [Hash]

@api private

    # File lib/dm-core/query/conditions/comparison.rb, line 83
83:           def comparison_classes
84:             @comparison_classes ||= {}
85:           end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.