cadet 0.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +26 -0
  5. data/README.md +59 -0
  6. data/Rakefile +7 -0
  7. data/cadet.gemspec +21 -0
  8. data/lib/cadet/batch_inserter/batch_inserter.rb +50 -0
  9. data/lib/cadet/batch_inserter/node.rb +25 -0
  10. data/lib/cadet/index_provider/index_provider.rb +46 -0
  11. data/lib/cadet/node.rb +54 -0
  12. data/lib/cadet/session.rb +83 -0
  13. data/lib/cadet/traversal/description.rb +30 -0
  14. data/lib/cadet/traversal/evaluator.rb +15 -0
  15. data/lib/cadet/traversal/path.rb +12 -0
  16. data/lib/cadet/version.rb +3 -0
  17. data/lib/cadet.rb +30 -0
  18. data/lib/neo4j/README.txt +16 -0
  19. data/lib/neo4j/concurrentlinkedhashmap-lru-1.3.1.jar +0 -0
  20. data/lib/neo4j/geronimo-jta_1.1_spec-1.1.1.jar +0 -0
  21. data/lib/neo4j/lucene-core-3.6.2.jar +0 -0
  22. data/lib/neo4j/neo4j-cypher-2.0.0.jar +0 -0
  23. data/lib/neo4j/neo4j-cypher-commons-2.0.0.jar +0 -0
  24. data/lib/neo4j/neo4j-cypher-compiler-1.9-2.0.0.jar +0 -0
  25. data/lib/neo4j/neo4j-cypher-compiler-2.0-2.0.0.jar +0 -0
  26. data/lib/neo4j/neo4j-graph-algo-2.0.0.jar +0 -0
  27. data/lib/neo4j/neo4j-graph-matching-2.0.0.jar +0 -0
  28. data/lib/neo4j/neo4j-jmx-2.0.0.jar +0 -0
  29. data/lib/neo4j/neo4j-kernel-2.0.0.jar +0 -0
  30. data/lib/neo4j/neo4j-lucene-index-2.0.0.jar +0 -0
  31. data/lib/neo4j/neo4j-shell-2.0.0.jar +0 -0
  32. data/lib/neo4j/neo4j-udc-2.0.0.jar +0 -0
  33. data/lib/neo4j/org.apache.servicemix.bundles.jline-0.9.94_1.jar +0 -0
  34. data/lib/neo4j/parboiled-core-1.1.6.jar +0 -0
  35. data/lib/neo4j/parboiled-scala_2.10-1.1.6.jar +0 -0
  36. data/lib/neo4j/scala-library-2.10.3.jar +0 -0
  37. data/lib/neo4j/server-api-2.0.0.jar +0 -0
  38. data/spec/spec_helper.rb +1 -0
  39. data/spec/unit/cadet_spec.rb +18 -0
  40. 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
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
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
@@ -0,0 +1,7 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
7
+ task :test => :spec
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
@@ -0,0 +1,15 @@
1
+ module Cadet
2
+ module Traversal
3
+ class Evaluator
4
+ include_package "org.neo4j.graphdb.traversal"
5
+
6
+ def initialize
7
+ @evaluator = Evaluators.toDepth(2)
8
+ end
9
+
10
+ def evaluator
11
+ @evaluator
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Cadet
2
+ module Traversal
3
+ class Path
4
+ def initialize(path)
5
+ @path = path
6
+ end
7
+ def path
8
+ @path
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module Cadet
2
+ VERSION = "0.0.1"
3
+ 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
@@ -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: []