Class: CouchbaseOrm::IndexDefinition
- Inherits:
-
Object
- Object
- CouchbaseOrm::IndexDefinition
- Defined in:
- lib/couchbase-orm/index_definition.rb
Constant Summary collapse
- NAME_SYMBOL_PATTERN =
/\A[a-zA-Z_][a-zA-Z0-9_]*\z/
Instance Attribute Summary collapse
-
#defer_build ⇒ Object
readonly
Returns the value of attribute defer_build.
-
#keys ⇒ Object
readonly
Returns the value of attribute keys.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#num_replica ⇒ Object
readonly
Returns the value of attribute num_replica.
-
#where ⇒ Object
readonly
Returns the value of attribute where.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(name:, keys:, where: nil, defer_build: false, num_replica: nil) ⇒ IndexDefinition
constructor
A new instance of IndexDefinition.
Constructor Details
#initialize(name:, keys:, where: nil, defer_build: false, num_replica: nil) ⇒ IndexDefinition
Returns a new instance of IndexDefinition.
9 10 11 12 13 14 15 |
# File 'lib/couchbase-orm/index_definition.rb', line 9 def initialize(name:, keys:, where: nil, defer_build: false, num_replica: nil) @name = normalize_name(name) @keys = normalize_keys(keys) @where = normalize_where(where) @defer_build = !!defer_build @num_replica = num_replica end |
Instance Attribute Details
#defer_build ⇒ Object (readonly)
Returns the value of attribute defer_build.
5 6 7 |
# File 'lib/couchbase-orm/index_definition.rb', line 5 def defer_build @defer_build end |
#keys ⇒ Object (readonly)
Returns the value of attribute keys.
5 6 7 |
# File 'lib/couchbase-orm/index_definition.rb', line 5 def keys @keys end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
5 6 7 |
# File 'lib/couchbase-orm/index_definition.rb', line 5 def name @name end |
#num_replica ⇒ Object (readonly)
Returns the value of attribute num_replica.
5 6 7 |
# File 'lib/couchbase-orm/index_definition.rb', line 5 def num_replica @num_replica end |
#where ⇒ Object (readonly)
Returns the value of attribute where.
5 6 7 |
# File 'lib/couchbase-orm/index_definition.rb', line 5 def where @where end |
Class Method Details
.from_introspected(index_data) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/couchbase-orm/index_definition.rb', line 17 def self.from_introspected(index_data) new( name: index_data.fetch(:name), keys: index_data.fetch(:index_key, []), where: index_data[:condition] ) end |
.normalize_name(name) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/couchbase-orm/index_definition.rb', line 36 def normalize_name(name) value = name.to_s.strip return value.to_sym if value.match?(NAME_SYMBOL_PATTERN) value end |
Instance Method Details
#<=>(other) ⇒ Object
25 26 27 |
# File 'lib/couchbase-orm/index_definition.rb', line 25 def <=>(other) name.to_s <=> other.name.to_s end |