Class: Mongoid::Indexable::Specification
- Inherits:
-
Object
- Object
- Mongoid::Indexable::Specification
- Defined in:
- lib/mongoid/indexable/specification.rb
Overview
Encapsulates behaviour around an index specification.
Constant Summary collapse
- MAPPINGS =
The mappings of nice Ruby-style names to the corresponding MongoDB name.
{ bucket_size: :bucketSize, drop_dups: :dropDups, expire_after_seconds: :expireAfterSeconds }
Instance Attribute Summary collapse
- #fields ⇒ Object readonly
-
#key ⇒ Hash
The index key.
-
#klass ⇒ Class
The class the index is defined on.
- #options ⇒ Object
Instance Method Summary collapse
-
#==(other) ⇒ true, false
Is this index specification equal to another?.
-
#initialize(klass, key, opts = nil) ⇒ Specification
constructor
Instantiate a new index specification.
Constructor Details
#initialize(klass, key, opts = nil) ⇒ Specification
Instantiate a new index specification.
52 53 54 55 56 57 58 59 |
# File 'lib/mongoid/indexable/specification.rb', line 52 def initialize(klass, key, opts = nil) = opts || {} Validators::Options.validate(klass, key, ) @klass = klass @key = normalize_key(key) @fields = @key.keys @options = (.dup) end |
Instance Attribute Details
#fields ⇒ Object (readonly)
26 27 28 |
# File 'lib/mongoid/indexable/specification.rb', line 26 def fields @fields end |
#key ⇒ Hash
Returns The index key.
26 |
# File 'lib/mongoid/indexable/specification.rb', line 26 attr_reader :klass, :key, :fields, :options |
#klass ⇒ Class
Returns The class the index is defined on.
26 27 28 |
# File 'lib/mongoid/indexable/specification.rb', line 26 def klass @klass end |
#options ⇒ Object
26 |
# File 'lib/mongoid/indexable/specification.rb', line 26 attr_reader :klass, :key, :fields, :options |
Instance Method Details
#==(other) ⇒ true, false
Is this index specification equal to another?
38 39 40 |
# File 'lib/mongoid/indexable/specification.rb', line 38 def ==(other) fields == other.fields && key == other.key end |