Class: DataMapper::Query::Conditions::Operation

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

Class Method Summary collapse

Class Method Details

.new(slug, *operands) ⇒ Object

TODO: document

API:

  • semipublic



9
10
11
12
13
14
15
# File 'lib/dm-core/query/conditions/operation.rb', line 9

def self.new(slug, *operands)
  if klass = operation_class(slug)
    klass.new(*operands)
  else
    raise "No Operation class for `#{slug.inspect}' has been defined"
  end
end

.operation_class(slug) ⇒ Object

TODO: document

API:

  • semipublic



19
20
21
# File 'lib/dm-core/query/conditions/operation.rb', line 19

def self.operation_class(slug)
  operation_classes[slug] ||= AbstractOperation.descendants.detect { |operation_class| operation_class.slug == slug }
end

.slugsObject

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.

TODO: document

API:

  • private



25
26
27
# File 'lib/dm-core/query/conditions/operation.rb', line 25

def self.slugs
  @slugs ||= AbstractOperation.descendants.map { |operation_class| operation_class.slug }
end