cadet 0.0.1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []