class Origin::Key
The key is a representation of a field in a queryable, that can be expanded to special MongoDB selectors.
Attributes
@attribute [r] name The name of the field. @attribute [r] block The optional block to transform values. @attribute [r] operator The MongoDB query operator. @attribute [r] expanded The MongoDB expanded query operator. @attribute [r] strategy The name of the merge strategy.
@attribute [r] name The name of the field. @attribute [r] block The optional block to transform values. @attribute [r] operator The MongoDB query operator. @attribute [r] expanded The MongoDB expanded query operator. @attribute [r] strategy The name of the merge strategy.
@attribute [r] name The name of the field. @attribute [r] block The optional block to transform values. @attribute [r] operator The MongoDB query operator. @attribute [r] expanded The MongoDB expanded query operator. @attribute [r] strategy The name of the merge strategy.
@attribute [r] name The name of the field. @attribute [r] block The optional block to transform values. @attribute [r] operator The MongoDB query operator. @attribute [r] expanded The MongoDB expanded query operator. @attribute [r] strategy The name of the merge strategy.
@attribute [r] name The name of the field. @attribute [r] block The optional block to transform values. @attribute [r] operator The MongoDB query operator. @attribute [r] expanded The MongoDB expanded query operator. @attribute [r] strategy The name of the merge strategy.
Public Class Methods
Instantiate the new key.
@example Instantiate the key.
Key.new("age", "$gt")
@param [ String, Symbol ] name The field name. @param [ Symbol ] strategy The name of the merge strategy. @param [ String ] operator The Mongo operator. @param [ String ] expanded The Mongo expanded operator.
@since 1.0.0
# File lib/origin/key.rb, line 51 def initialize(name, strategy, operator, expanded = nil, &block) @name, @strategy, @operator, @expanded, @block = name, strategy, operator, expanded, block end
Public Instance Methods
Does the key equal another object?
@example Is the key equal to another?
key == other key.eql? other
@param [ Object ] other The object to compare to.
@return [ true, false ] If the objects are equal.
@since 1.0.0
# File lib/origin/key.rb, line 25 def ==(other) return false unless other.is_a?(Key) name == other.name && operator == other.operator && expanded == other.expanded end
Gets the raw selector that would be passed to Mongo from this key.
@example Specify the raw selector.
key.__expr_part__(50)
@param [ Object ] object The value to be included. @param [ true, false ] negating If the selection should be negated.
@return [ Hash ] The raw MongoDB selector.
@since 1.0.0
# File lib/origin/key.rb, line 67 def __expr_part__(object, negating = false) value = block ? block[object] : object expression = { operator => expanded ? { expanded => value } : value } { name.to_s => (negating && operator != "$not") ? { "$not" => expression } : expression } end
Get the key as raw Mongo sorting options.
@example Get the key as a sort.
key.__sort_option__
@return [ Hash ] The field/direction pair.
@since 1.0.0
# File lib/origin/key.rb, line 81 def __sort_option__ { name => operator } end
Calculate the hash code for a key.
@return [ Fixnum ] The hash code for the key.
@since 1.1.0
# File lib/origin/key.rb, line 36 def hash [name, operator, expanded].hash end
Convert the key to a string.
@example Convert the key to a string.
key.to_s
@return [ String ] The key as a string.
@since 1.1.0
# File lib/origin/key.rb, line 94 def to_s @name.to_s end