Sha256: d112c1c543473c7af5b94ddc167979d967625af0a675c4a6bd123ffabc1753c2
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module Cadet class Session def initialize(db) @db = db end def self.open(location) new org.neo4j.graphdb.factory.GraphDatabaseFactory.new.newEmbeddedDatabase(location) end def close @db.shutdown end def create_node(label, properties, indexing_property = nil) Node.new(@db.createNode).tap do |n| n.add_label label properties.each { |prop, val| n[prop] = val } end end def find_node(label, property, value) ( node = org.neo4j.helpers.collection.IteratorUtil.firstOrNull(@db.findNodesByLabelAndProperty(DynamicLabel.label(label), property, value)) ) ? Node.new(node) : nil end def get_node(label, property, value) find_node(label, property, value) || create_node(label, {property.to_sym => value}, property) end def get_transaction Transaction.new(self) end def dsl(&block) DSL.new(self).instance_exec(self, &block) self end def transaction tx = get_transaction begin yield tx tx.success ensure tx.close end end def constraint(label, property) @db.schema .constraintFor(DynamicLabel.label(label)) .assertPropertyIsUnique(property) .create() end def begin_tx @db.beginTx end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cadet-0.0.9-java | lib/cadet/session.rb |
cadet-0.0.8-java | lib/cadet/session.rb |