Sha256: e1fd9ed445fda74978ff346bae40eeb4139d3caa6d5126ed083e7582dc636621
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module Neo4j::Shared class DeclaredProperty # None of these methods interact with the database. They only keep track of property settings in models. # It could (should?) handle the actual indexing/constraining, but that's TBD. module Index def index_or_constraint? index?(:exact) || constraint?(:unique) end def index?(type = :exact) options.key?(:index) && options[:index] == type end def constraint?(type = :unique) options.key?(:constraint) && options[:constraint] == type end def index!(type = :exact) fail Neo4j::InvalidPropertyOptionsError, "Unable to set index on constrainted property #{name} (constraints get indexes automatically)" if constraint?(:unique) options[:index] = type end def constraint!(type = :unique) fail Neo4j::InvalidPropertyOptionsError, "Unable to set constraint on indexed property #{name} (constraints get indexes automatically)" if index?(:exact) options[:constraint] = type end def unindex!(type = :exact) options.delete(:index) if index?(type) end def unconstraint!(type = :unique) options.delete(:constraint) if constraint?(type) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
neo4j-7.0.6 | lib/neo4j/shared/declared_property/index.rb |