Class: Perpetuity::MongoDB::QueryAttribute

Inherits:
Object
  • Object
show all
Defined in:
lib/perpetuity/mongodb/query_attribute.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ QueryAttribute

Returns a new instance of QueryAttribute.



8
9
10
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 8

def initialize name
  @name = name
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 53

def method_missing name
  if name.to_s == 'id'
    name = :"#{self.name}.__metadata__.#{name}"
  elsif name.to_s == 'klass'
    name = :"#{self.name}.__metadata__.class"
  else
    name = :"#{self.name}.#{name}"
  end

  self.class.new(name)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 6

def name
  @name
end

Instance Method Details

#!=(value) ⇒ Object Also known as: not_equal?



32
33
34
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 32

def != value
  QueryExpression.new self, :not_equal, value
end

#<(value) ⇒ Object



16
17
18
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 16

def < value
  QueryExpression.new self, :less_than, value
end

#<=(value) ⇒ Object



28
29
30
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 28

def <= value
  QueryExpression.new self, :lte, value
end

#==(value) ⇒ Object



12
13
14
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 12

def == value
  QueryExpression.new self, :equals, value
end

#=~(regexp) ⇒ Object



37
38
39
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 37

def =~ regexp
  QueryExpression.new self, :matches, regexp
end

#>(value) ⇒ Object



24
25
26
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 24

def > value
  QueryExpression.new self, :greater_than, value
end

#>=(value) ⇒ Object



20
21
22
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 20

def >= value
  QueryExpression.new self, :gte, value
end

#in(collection) ⇒ Object



41
42
43
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 41

def in collection
  QueryExpression.new self, :in, collection
end

#to_dbObject



49
50
51
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 49

def to_db
  ((self != false) & (self != nil)).to_db
end

#to_symObject



45
46
47
# File 'lib/perpetuity/mongodb/query_attribute.rb', line 45

def to_sym
  name
end