Sha256: bbad3c978bbfad754a01e22e30ad2001833da919652551175fff9532ff83e93c

Contents?: true

Size: 1.32 KB

Versions: 4

Compression:

Stored size: 1.32 KB

Contents

module Neo4j
  module Core

    # A mixin which adds indexing behaviour to your own Ruby class
    # You are expected to implement the method `java_entity` returning the underlying Neo4j Node or Relationship.
    module Index

      # Adds an index on the given property
      # Notice that you normally don't have to do that since you simply can declare
      # that the property and index should be updated automatically by using the class method #index.
      #
      # The index operation will take place immediately unlike when using the Neo4j::Core::Index::ClassMethods#index
      # method which instead will guarantee that the neo4j database and the lucene database will be consistent.
      # It uses a two phase commit when the transaction is about to be committed.
      #
      # @see Neo4j::Core::Index::ClassMethods#add_index
      #
      def add_index(field, value=self[field])
        self.class.add_index(java_entity, field.to_s, value)
      end

      # Removes an index on the given property.
      # Just like #add_index this is normally not needed since you instead can declare it with the
      # #index class method instead.
      #
      # @see Neo4j::Core::Index::ClassMethods#rm_index
      #
      def rm_index(field, value=self[field])
        self.class.rm_index(java_entity, field.to_s, value)
      end

    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
neo4j-core-0.0.13-java lib/neo4j-core/index/index.rb
neo4j-core-0.0.12-java lib/neo4j-core/index/index.rb
neo4j-core-0.0.11-java lib/neo4j-core/index/index.rb
neo4j-core-0.0.10-java lib/neo4j-core/index/index.rb