cadet 0.0.1-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +26 -0
- data/README.md +59 -0
- data/Rakefile +7 -0
- data/cadet.gemspec +21 -0
- data/lib/cadet/batch_inserter/batch_inserter.rb +50 -0
- data/lib/cadet/batch_inserter/node.rb +25 -0
- data/lib/cadet/index_provider/index_provider.rb +46 -0
- data/lib/cadet/node.rb +54 -0
- data/lib/cadet/session.rb +83 -0
- data/lib/cadet/traversal/description.rb +30 -0
- data/lib/cadet/traversal/evaluator.rb +15 -0
- data/lib/cadet/traversal/path.rb +12 -0
- data/lib/cadet/version.rb +3 -0
- data/lib/cadet.rb +30 -0
- data/lib/neo4j/README.txt +16 -0
- data/lib/neo4j/concurrentlinkedhashmap-lru-1.3.1.jar +0 -0
- data/lib/neo4j/geronimo-jta_1.1_spec-1.1.1.jar +0 -0
- data/lib/neo4j/lucene-core-3.6.2.jar +0 -0
- data/lib/neo4j/neo4j-cypher-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-cypher-commons-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-cypher-compiler-1.9-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-cypher-compiler-2.0-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-graph-algo-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-graph-matching-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-jmx-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-kernel-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-lucene-index-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-shell-2.0.0.jar +0 -0
- data/lib/neo4j/neo4j-udc-2.0.0.jar +0 -0
- data/lib/neo4j/org.apache.servicemix.bundles.jline-0.9.94_1.jar +0 -0
- data/lib/neo4j/parboiled-core-1.1.6.jar +0 -0
- data/lib/neo4j/parboiled-scala_2.10-1.1.6.jar +0 -0
- data/lib/neo4j/scala-library-2.10.3.jar +0 -0
- data/lib/neo4j/server-api-2.0.0.jar +0 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/unit/cadet_spec.rb +18 -0
- metadata +109 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: abffa401951196b50b8baa617c43be24ceb3c115
|
4
|
+
data.tar.gz: 7b9a1a911568427d585a7c6771ee1a8bd8bc9402
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1415ad1dfcd2023a62c3c16c677e0c2f56ae7c5fa923ddbcd939834c57b8f665c7da5993648e996bef4393ff32888670de2e7d42cd82cda22042382055d4ed18
|
7
|
+
data.tar.gz: 1b75ffe54d7e79b00746f8c4e1fed335c80bef6f9c0e9a5e56577a9cac3a4410a7a05568b09d570068017139e7cfb06c7bff940c3a2e66622582d8e573b17763
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
.bundle
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cadet (0.0.1-java)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.2.5)
|
10
|
+
rake (10.1.1)
|
11
|
+
rspec (2.14.1)
|
12
|
+
rspec-core (~> 2.14.0)
|
13
|
+
rspec-expectations (~> 2.14.0)
|
14
|
+
rspec-mocks (~> 2.14.0)
|
15
|
+
rspec-core (2.14.7)
|
16
|
+
rspec-expectations (2.14.4)
|
17
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
18
|
+
rspec-mocks (2.14.4)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
java
|
22
|
+
|
23
|
+
DEPENDENCIES
|
24
|
+
cadet!
|
25
|
+
rake
|
26
|
+
rspec
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
new! support for batchinsert mode!
|
2
|
+
just open the database with Cadet::BatchInserter::BatchInserter.open() instead of Cadet::Session.open()!
|
3
|
+
this no-ops transaction, simply yielding to the supplied block.
|
4
|
+
|
5
|
+
super simple. you dont even need to download neo4j.
|
6
|
+
|
7
|
+
1. Gemfile
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'cadet', git: 'https://github.com/karabijavad/cadet'
|
11
|
+
```
|
12
|
+
2. ``` bundle install ```
|
13
|
+
3. cadet-example.rb
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
|
17
|
+
require 'cadet'
|
18
|
+
require 'yaml'
|
19
|
+
|
20
|
+
data = YAML.load_file('legislators-current.yaml')
|
21
|
+
|
22
|
+
#open the database, db is now used to interact with the database
|
23
|
+
db = Cadet::Session.open("neo4j-community-2.0.0/data/graph.db")
|
24
|
+
|
25
|
+
db.transaction do
|
26
|
+
begin
|
27
|
+
#create unique constrains on each of these Labels' 'name' property
|
28
|
+
["Legislator", "Party", "Gender", "State"].each {|v| db.constraint v, "name"}
|
29
|
+
rescue Exception => e # ignore, probably just saying the constraint already exists
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
data.each do |leg|
|
35
|
+
#begin a transaction. the transaction will automatically finish at the end of the provided block
|
36
|
+
db.transaction do
|
37
|
+
|
38
|
+
#get_a_X(property, value) will find a node labeled 'X', with a property of key 'property', and value 'value'
|
39
|
+
#if the node is not found, it will create it and return it.
|
40
|
+
l = db.get_a_Legislator "name", leg["name"]["official_full"] || "no name"
|
41
|
+
p = db.get_a_Party "name", leg["terms"].first["party"]
|
42
|
+
g = db.get_a_Gender "name", leg["bio"]["gender"]
|
43
|
+
s = db.get_a_State "name", leg["terms"].first["state"]
|
44
|
+
|
45
|
+
# automatically create relationships, where the relationship type is the method's name
|
46
|
+
l.party_to p
|
47
|
+
l.gender_to g
|
48
|
+
l.represents_to s
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
#close the database
|
54
|
+
db.close()
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
```
|
59
|
+
4. ```bundle exec ruby```
|
data/Rakefile
ADDED
data/cadet.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
require "cadet/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "cadet"
|
8
|
+
s.version = Cadet::VERSION
|
9
|
+
s.platform = "java"
|
10
|
+
s.authors = "Javad Karabi"
|
11
|
+
s.email = "karabijavad@gmail.com"
|
12
|
+
s.homepage = "https://github.com/karabijavad/cadet"
|
13
|
+
s.summary = "ruby wrapper to Neo4j java API"
|
14
|
+
s.description = "ruby wrapper to Neo4j java API"
|
15
|
+
s.license = 'MIT'
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
s.add_development_dependency 'rake'
|
20
|
+
s.add_development_dependency 'rspec'
|
21
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Cadet
|
2
|
+
module BatchInserter
|
3
|
+
class BatchInserter < Cadet::Session
|
4
|
+
include_package "org.neo4j.unsafe.batchinsert"
|
5
|
+
include_package "org.neo4j.index.impl.lucene"
|
6
|
+
|
7
|
+
def initialize(db)
|
8
|
+
@db = db
|
9
|
+
#@index_provider = LuceneBatchInserterIndexProviderNewImpl.new(db)
|
10
|
+
@index_provider = Cadet::IndexProvider.new(db)
|
11
|
+
end
|
12
|
+
|
13
|
+
def close
|
14
|
+
@index_provider.shutdown
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.open(location)
|
19
|
+
new BatchInserters.inserter(location)
|
20
|
+
end
|
21
|
+
|
22
|
+
def transaction
|
23
|
+
yield
|
24
|
+
end
|
25
|
+
|
26
|
+
def constraint(label, property)
|
27
|
+
index = @index_provider.nodeIndex label, {"type" => "exact"}
|
28
|
+
index.setCacheCapacity property, 100000
|
29
|
+
end
|
30
|
+
|
31
|
+
def find_node_by_label_and_property(label, property, value)
|
32
|
+
index = @index_provider.nodeIndex label, {"type" => "exact"}
|
33
|
+
result = org.neo4j.helpers.collection.IteratorUtil.firstOrNull(index.get(property, value))
|
34
|
+
if result
|
35
|
+
return Cadet::BatchInserter::Node.new(@db, result)
|
36
|
+
else
|
37
|
+
return nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_node_with(label, props={})
|
42
|
+
n = Cadet::BatchInserter::Node.make @db, props, label
|
43
|
+
|
44
|
+
index = @index_provider.nodeIndex label, {"type" => "exact"}
|
45
|
+
index.add(n.node, props)
|
46
|
+
n
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Cadet
|
2
|
+
module BatchInserter
|
3
|
+
class Node < Cadet::Node
|
4
|
+
attr_accessor :node
|
5
|
+
|
6
|
+
def initialize(db, node)
|
7
|
+
@db = db
|
8
|
+
@node = node
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.make(db, props = {}, label = '')
|
12
|
+
node = db.createNode props, org.neo4j.graphdb.DynamicLabel.label(label)
|
13
|
+
new db, node
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_outgoing(to, type, properties = {})
|
17
|
+
rel_type = org.neo4j.graphdb.DynamicRelationshipType.withName(type)
|
18
|
+
@db.createRelationship(@node, to.node, rel_type, properties)
|
19
|
+
end
|
20
|
+
def set_properties(props)
|
21
|
+
@db.setNodeProperties(@node, props)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Cadet
|
2
|
+
class IndexProvider
|
3
|
+
def initialize(db)
|
4
|
+
@db = db
|
5
|
+
@indexes = {}
|
6
|
+
@lucene_index = org.neo4j.index.impl.lucene.LuceneBatchInserterIndexProviderNewImpl.new(db)
|
7
|
+
end
|
8
|
+
def nodeIndex(name, type)
|
9
|
+
@indexes[name] ||= Cadet::Index.new(@lucene_index, name, type)
|
10
|
+
end
|
11
|
+
def shutdown
|
12
|
+
@indexes.each do |name, index|
|
13
|
+
index.flush
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Cadet
|
20
|
+
class Index
|
21
|
+
def initialize(lucene_index, name, type)
|
22
|
+
@name = name
|
23
|
+
@type = type
|
24
|
+
@index = {}
|
25
|
+
@lucene_index = lucene_index
|
26
|
+
end
|
27
|
+
def setCacheCapacity(property, capacity)
|
28
|
+
end
|
29
|
+
def add(node, prop)
|
30
|
+
@index[prop.first[0]] ||= {}
|
31
|
+
@index[prop.first[0]][prop.first[1]] = node
|
32
|
+
end
|
33
|
+
def get(property, value)
|
34
|
+
@index[property] ||= {}
|
35
|
+
[@index[property][value]]
|
36
|
+
end
|
37
|
+
def flush
|
38
|
+
index = @lucene_index.nodeIndex @name, @type
|
39
|
+
@index.each do |property, mappings|
|
40
|
+
mappings.each do |value, node|
|
41
|
+
index.add(node, {property => value})
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/cadet/node.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
module Cadet
|
2
|
+
class Node
|
3
|
+
attr_accessor :node
|
4
|
+
include_package "org.neo4j.graphdb"
|
5
|
+
|
6
|
+
directions = {
|
7
|
+
"in" => Direction[0],
|
8
|
+
"out" => Direction[1],
|
9
|
+
"both" => Direction[2]
|
10
|
+
}
|
11
|
+
|
12
|
+
def initialize(node)
|
13
|
+
@node = node
|
14
|
+
end
|
15
|
+
def create_outgoing(to, type)
|
16
|
+
@node.createRelationshipTo(to.node, DynamicRelationshipType.withName(type))
|
17
|
+
end
|
18
|
+
def add_label(label)
|
19
|
+
@node.addLabel(DynamicLabel.label(label))
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def method_missing(name, *args)
|
24
|
+
if name.to_s.end_with? "="
|
25
|
+
set_property name.to_s.gsub(/=$/, ''), args[0]
|
26
|
+
elsif name.to_s.end_with? "_to"
|
27
|
+
create_outgoing args[0], name.to_s.gsub(/_to$/, '')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_single_relationship(type, dir="both")
|
32
|
+
@node.getSingleRelationship DynamicRelationshipType.withName(type), @directions[dir]
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_all_relationships
|
36
|
+
@node.getRelationships()
|
37
|
+
end
|
38
|
+
def get_all_relationships_of_type(type)
|
39
|
+
@node.getRelationships(DynamicRelationshipType.withName(type))
|
40
|
+
end
|
41
|
+
def get_all_relationships_of_type_and_dir(type, dir)
|
42
|
+
@node.getRelationships DynamicRelationshipType.withName(type), @directions[dir]
|
43
|
+
end
|
44
|
+
|
45
|
+
def set_property(property, value)
|
46
|
+
@node.setProperty(property, value)
|
47
|
+
end
|
48
|
+
def set_properties(props)
|
49
|
+
props.each do |k,v|
|
50
|
+
set_property(k.to_s, v)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module Cadet
|
2
|
+
class Session
|
3
|
+
include_package "org.neo4j.graphdb"
|
4
|
+
include_package "org.neo4j.graphdb.factory"
|
5
|
+
include_package "org.neo4j.unsafe.batchinsert"
|
6
|
+
|
7
|
+
def initialize(db)
|
8
|
+
@db = db
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.open(location)
|
12
|
+
new GraphDatabaseFactory.new.newEmbeddedDatabase(location)
|
13
|
+
end
|
14
|
+
def close
|
15
|
+
@db.shutdown
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_empty_node
|
19
|
+
Cadet::Node.new @db.createNode
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_node_with(label, props = {})
|
23
|
+
n = Cadet::Node.new @db.createNode
|
24
|
+
n.add_label label
|
25
|
+
n.set_properties props
|
26
|
+
n
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_node_by_id(id)
|
30
|
+
Cadet::Node.new @db.getNodeById(id)
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_nodes_by_label_and_property(label, key, value)
|
34
|
+
result = []
|
35
|
+
@db.findNodesByLabelAndProperty(DynamicLabel.label(label), key, value).each do |node|
|
36
|
+
result << Cadet::Node.new(node)
|
37
|
+
end
|
38
|
+
result
|
39
|
+
end
|
40
|
+
def find_node_by_label_and_property(label, key, value)
|
41
|
+
node = org.neo4j.helpers.collection.IteratorUtil.firstOrNull @db.findNodesByLabelAndProperty(DynamicLabel.label(label), key, value)
|
42
|
+
node ? Cadet::Node.new(node) : null
|
43
|
+
end
|
44
|
+
|
45
|
+
def transaction
|
46
|
+
tx = @db.beginTx
|
47
|
+
begin
|
48
|
+
yield tx
|
49
|
+
tx.success
|
50
|
+
ensure
|
51
|
+
tx.close
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def constraint(label, property)
|
56
|
+
@db.schema
|
57
|
+
.constraintFor(DynamicLabel.label(label))
|
58
|
+
.assertPropertyIsUnique(property)
|
59
|
+
.create
|
60
|
+
end
|
61
|
+
|
62
|
+
def method_missing(name, *args)
|
63
|
+
if match = /get_a_([A-Z][A-Za-z]*)$/.match(name.to_s)
|
64
|
+
return get_a_node match.captures.first, args[0], args[1]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_a_node(label, property, value, default_values = {})
|
69
|
+
n = find_node_by_label_and_property(label, property, value)
|
70
|
+
if n.nil?
|
71
|
+
h = {}
|
72
|
+
h[property] = value
|
73
|
+
n = create_node_with label, h.merge(default_values)
|
74
|
+
end
|
75
|
+
n
|
76
|
+
end
|
77
|
+
|
78
|
+
def traverser
|
79
|
+
Cadet::Traversal::Description.new @db.traversalDescription
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Cadet
|
2
|
+
module Traversal
|
3
|
+
class Description
|
4
|
+
include_package "org.neo4j.graphdb"
|
5
|
+
|
6
|
+
def initialize(description)
|
7
|
+
@description = description
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def relationships(relationship_names)
|
12
|
+
relationship_names.each do |rel_name|
|
13
|
+
@description = @description.relationships DynamicRelationshipType.withName(rel_name)
|
14
|
+
end
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def evaluator(evaluator)
|
19
|
+
@description = @description.evaluator evaluator.evaluator
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def traverse(start_node)
|
24
|
+
@description.traverse(start_node.node).map do |path|
|
25
|
+
Cadet::Traversal::Path.new path
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/cadet.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
["concurrentlinkedhashmap-lru-1.3.1.jar",
|
4
|
+
"geronimo-jta_1.1_spec-1.1.1.jar",
|
5
|
+
"lucene-core-3.6.2.jar",
|
6
|
+
"neo4j-cypher-2.0.0.jar",
|
7
|
+
"neo4j-cypher-commons-2.0.0.jar",
|
8
|
+
"neo4j-cypher-compiler-1.9-2.0.0.jar",
|
9
|
+
"neo4j-cypher-compiler-2.0-2.0.0.jar",
|
10
|
+
"neo4j-graph-algo-2.0.0.jar",
|
11
|
+
"neo4j-graph-matching-2.0.0.jar",
|
12
|
+
"neo4j-jmx-2.0.0.jar",
|
13
|
+
"neo4j-kernel-2.0.0.jar",
|
14
|
+
"neo4j-lucene-index-2.0.0.jar",
|
15
|
+
"neo4j-shell-2.0.0.jar",
|
16
|
+
"neo4j-udc-2.0.0.jar",
|
17
|
+
"org.apache.servicemix.bundles.jline-0.9.94_1.jar",
|
18
|
+
"parboiled-core-1.1.6.jar",
|
19
|
+
"parboiled-scala_2.10-1.1.6.jar",
|
20
|
+
"scala-library-2.10.3.jar",
|
21
|
+
"server-api-2.0.0.jar"].each { |file| require "neo4j/#{file}" }
|
22
|
+
|
23
|
+
require 'cadet/session'
|
24
|
+
require 'cadet/node'
|
25
|
+
require 'cadet/traversal/description'
|
26
|
+
require 'cadet/traversal/evaluator'
|
27
|
+
require 'cadet/traversal/path'
|
28
|
+
require 'cadet/batch_inserter/batch_inserter'
|
29
|
+
require 'cadet/batch_inserter/node'
|
30
|
+
require 'cadet/index_provider/index_provider'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Neo4j Libraries
|
2
|
+
=======================================
|
3
|
+
|
4
|
+
Neo4j core java libraries. These can be used for embedded development,
|
5
|
+
but are also required for operation of the server.
|
6
|
+
|
7
|
+
Copy them, link them, or include them on the class path, but do **not**
|
8
|
+
delete them, because that will make the server sad.
|
9
|
+
|
10
|
+
For more information, see the [component documentation](/doc/components.txt)
|
11
|
+
|
12
|
+
References
|
13
|
+
----------
|
14
|
+
|
15
|
+
* [component documentation](/doc/components.txt) -- local documentation
|
16
|
+
* [Neo4j Components](http://components.neo4j.org) -- comprehensive online docs
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'cadet'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Cadet do
|
4
|
+
|
5
|
+
it "should create a node, (and also test that transaction works in the process)" do
|
6
|
+
db = Cadet::Session.open("./tmp")
|
7
|
+
db.transaction do
|
8
|
+
n = db.create_node
|
9
|
+
end
|
10
|
+
db.close
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should _not_ create a node, as we are not in a transaction" do
|
14
|
+
db = Cadet::Session.open("./tmp")
|
15
|
+
expect { db.create_node }.to raise_error(org.neo4j.graphdb.NotInTransactionException)
|
16
|
+
db.close
|
17
|
+
end
|
18
|
+
end
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cadet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Javad Karabi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0'
|
25
|
+
prerelease: false
|
26
|
+
type: :development
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
prerelease: false
|
40
|
+
type: :development
|
41
|
+
description: ruby wrapper to Neo4j java API
|
42
|
+
email: karabijavad@gmail.com
|
43
|
+
executables: []
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- .gitignore
|
48
|
+
- Gemfile
|
49
|
+
- Gemfile.lock
|
50
|
+
- README.md
|
51
|
+
- Rakefile
|
52
|
+
- cadet.gemspec
|
53
|
+
- lib/cadet.rb
|
54
|
+
- lib/cadet/batch_inserter/batch_inserter.rb
|
55
|
+
- lib/cadet/batch_inserter/node.rb
|
56
|
+
- lib/cadet/index_provider/index_provider.rb
|
57
|
+
- lib/cadet/node.rb
|
58
|
+
- lib/cadet/session.rb
|
59
|
+
- lib/cadet/traversal/description.rb
|
60
|
+
- lib/cadet/traversal/evaluator.rb
|
61
|
+
- lib/cadet/traversal/path.rb
|
62
|
+
- lib/cadet/version.rb
|
63
|
+
- lib/neo4j/README.txt
|
64
|
+
- lib/neo4j/concurrentlinkedhashmap-lru-1.3.1.jar
|
65
|
+
- lib/neo4j/geronimo-jta_1.1_spec-1.1.1.jar
|
66
|
+
- lib/neo4j/lucene-core-3.6.2.jar
|
67
|
+
- lib/neo4j/neo4j-cypher-2.0.0.jar
|
68
|
+
- lib/neo4j/neo4j-cypher-commons-2.0.0.jar
|
69
|
+
- lib/neo4j/neo4j-cypher-compiler-1.9-2.0.0.jar
|
70
|
+
- lib/neo4j/neo4j-cypher-compiler-2.0-2.0.0.jar
|
71
|
+
- lib/neo4j/neo4j-graph-algo-2.0.0.jar
|
72
|
+
- lib/neo4j/neo4j-graph-matching-2.0.0.jar
|
73
|
+
- lib/neo4j/neo4j-jmx-2.0.0.jar
|
74
|
+
- lib/neo4j/neo4j-kernel-2.0.0.jar
|
75
|
+
- lib/neo4j/neo4j-lucene-index-2.0.0.jar
|
76
|
+
- lib/neo4j/neo4j-shell-2.0.0.jar
|
77
|
+
- lib/neo4j/neo4j-udc-2.0.0.jar
|
78
|
+
- lib/neo4j/org.apache.servicemix.bundles.jline-0.9.94_1.jar
|
79
|
+
- lib/neo4j/parboiled-core-1.1.6.jar
|
80
|
+
- lib/neo4j/parboiled-scala_2.10-1.1.6.jar
|
81
|
+
- lib/neo4j/scala-library-2.10.3.jar
|
82
|
+
- lib/neo4j/server-api-2.0.0.jar
|
83
|
+
- spec/spec_helper.rb
|
84
|
+
- spec/unit/cadet_spec.rb
|
85
|
+
homepage: https://github.com/karabijavad/cadet
|
86
|
+
licenses:
|
87
|
+
- MIT
|
88
|
+
metadata: {}
|
89
|
+
post_install_message:
|
90
|
+
rdoc_options: []
|
91
|
+
require_paths:
|
92
|
+
- lib
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
requirements: []
|
104
|
+
rubyforge_project:
|
105
|
+
rubygems_version: 2.2.1
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: ruby wrapper to Neo4j java API
|
109
|
+
test_files: []
|