Sha256: 3d158a04671d1c64b26cbb8b5b11898b9779f07136edbda7c0c35cd4d954d02d
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
module Cadet class Session include_package "org.neo4j.graphdb" include_package "org.neo4j.graphdb.factory" include_package "org.neo4j.unsafe.batchinsert" include_package "org.neo4j.helpers.collection" def initialize(db) @db = db end def self.open(location) new GraphDatabaseFactory.new.newEmbeddedDatabase(location) end def close @db.shutdown end def create_node(label, property, value) n = Node.new @db.createNode n.add_label label n[property] = value n end def find_node(label, property, value) node = IteratorUtil.firstOrNull @db.findNodesByLabelAndProperty(DynamicLabel.label(label), property, value) node ? Node.new(node) : null end def get_node(label, property, value) n = find_node(label, property, value) if n.nil? n = create_node(label, property, value) end n end def transaction tx = @db.beginTx 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 method_missing(name, *args) if match = /^get_a_([A-Z][A-Za-z]*)_by_([A-z]*)/.match(name) return get_node match.captures[0], match.captures[1], args[0] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cadet-0.0.6-java | lib/cadet/session.rb |
cadet-0.0.5-java | lib/cadet/session.rb |