Sha256: 16ba05a7ba95267591467d8efd808e101ed34f4e8ef23dbc9f47678407df07be

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

module Neo4jr
  class DB
    
    class << self
      def instance
        @neo ||= begin
          neo = EmbeddedGraphDatabase.new(Configuration.database_path)
          at_exit do
            neo.shutdown
          end
          Neo4jr::Indexer.use neo
          neo
        end
      end
  
      def getNodeById(node_id)
        execute do |neo|
          neo.getNodeById(node_id)
        end
      end
      
      def execute
        neo = instance
        result = nil
        transaction = neo.beginTx();
        begin
          result = yield neo
          transaction.success
        rescue Exception => e
          transaction.failure
          raise e
        ensure
          transaction.finish
        end
        result
      end
      
      def node_count
        instance.getConfig().getNeoModule().getNodeManager().getNumberOfIdsInUse(org.neo4j.graphdb.Node.java_class)
      end
      
      def stats
        {
          :path => Configuration.database_path,
          :nodes => node_count
        }
      end
      
      def to_s
        stats.inspect
      end      
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
neo4jr-simple-0.2.2 lib/neo4jr/db.rb
neo4jr-simple-0.2.1 lib/neo4jr/db.rb
neo4jr-simple-0.2.0 lib/neo4jr/db.rb
neo4jr-simple-0.1.8 lib/neo4jr/db.rb