neo4j-core 9.0.0.alpha.1 → 9.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95c3a0a71e52de4f4ef573cc36ff3d206a1fcd3ba443a84890e3c42c6ca6cc39
4
- data.tar.gz: '05885ecf4289f9fae5d67234f82324c24289e4ab0a1fff8ffc6569810e71a496'
3
+ metadata.gz: be42b706dfc53db46a75cb36a1bcc8025d37f57a67a607f7567872e8eb475f8a
4
+ data.tar.gz: e800d2f9742a015fd82fa7c01b9b9ed23f7eb87276b211262a46c6583a323e09
5
5
  SHA512:
6
- metadata.gz: ab2abc2fa87addc1ef0b2ebb0e3e67886d773d0542bf3a2850f17adc39c27e9faae92a0f528b8e8785de28bced39cbd19d5a264ee27f1584f1f34ccd21383049
7
- data.tar.gz: 686135288df838098db8b40ede27157bc02d335eef6b041b18ee4c7f24a2f0f28bdc98f1d5ada1a15e864e9e24d7caf1acb8aae2003b44696041b9c9ad44d8c9
6
+ metadata.gz: 2e64350cfe8254246c8ed994a2c8168e2fe9f4342c57d013d31f21c0a60a7ce708b3ba509000836bedc48dfbc8b4880b5d028a5118b69825b13d0d8fc7838716
7
+ data.tar.gz: a2a675a214fe7726213240f2fe8980328ea8c364f7d862b1be118d70a58f5e100ca7b28cdd0d5327e00ff8eb9b15ee20ffd503ca7d78c15147b5651a7ab4c436
data/Gemfile CHANGED
@@ -8,7 +8,15 @@ gemspec
8
8
  gem 'tins', '< 1.7' if RUBY_VERSION.to_f < 2.0
9
9
 
10
10
  group 'development' do
11
- gem 'guard-rspec', require: false if RUBY_PLATFORM != 'java'
11
+ if RUBY_PLATFORM =~ /java/
12
+ if ENV['USE_LOCAL_DRIVER']
13
+ gem 'neo4j-ruby-driver', path: '../neo4j-ruby-driver'
14
+ else
15
+ gem 'neo4j-ruby-driver'
16
+ end
17
+ else
18
+ gem 'guard-rspec', require: false
19
+ end
12
20
  if RUBY_VERSION.to_f < 2.0
13
21
  gem 'overcommit', '< 0.35.0'
14
22
  gem 'term-ansicolor', '< 1.4'
@@ -18,10 +26,10 @@ group 'development' do
18
26
  end
19
27
 
20
28
  group 'test' do
21
- gem 'activesupport', '~> 4.0'
29
+ gem 'activesupport'
22
30
  gem 'coveralls', require: false
23
31
  gem 'dotenv'
24
- gem 'rspec', '~> 3.0'
32
+ gem 'rspec'
25
33
  gem 'rspec-its'
26
34
  gem 'simplecov-html', require: false
27
35
  end
@@ -1,7 +1,10 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+
1
3
  module Neo4j
2
4
  module Core
3
5
  class CypherSession
4
6
  attr_reader :adaptor
7
+ delegate :close, to: :adaptor
5
8
 
6
9
  def initialize(adaptor)
7
10
  fail ArgumentError, "Invalid adaptor: #{adaptor.inspect}" if !adaptor.is_a?(Adaptors::Base)
@@ -186,6 +186,16 @@ ERROR
186
186
  ("\n ↳ #{source_line}:#{line_number}" if payload[:adaptor].options[:verbose_query_logs] && source_line).to_s
187
187
  end
188
188
 
189
+ def default_subscribe
190
+ subscribe_to_request
191
+ end
192
+
193
+ def close; end
194
+
195
+ def supports_metadata?
196
+ true
197
+ end
198
+
189
199
  class << self
190
200
  def transaction_class
191
201
  fail '.transaction_class method not implemented on adaptor!'
@@ -1,5 +1,6 @@
1
1
  require 'neo4j/core/cypher_session/adaptors'
2
2
  require 'neo4j/core/cypher_session/adaptors/has_uri'
3
+ require 'neo4j/core/cypher_session/adaptors/schema'
3
4
  require 'neo4j/core/cypher_session/adaptors/bolt/pack_stream'
4
5
  require 'neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io'
5
6
  require 'neo4j/core/cypher_session/responses/bolt'
@@ -12,6 +13,7 @@ module Neo4j
12
13
  module Adaptors
13
14
  class Bolt < Base
14
15
  include Adaptors::HasUri
16
+ include Adaptors::Schema
15
17
  default_url('bolt://neo4:neo4j@localhost:7687')
16
18
  validate_uri do |uri|
17
19
  uri.scheme == 'bolt'
@@ -53,35 +55,10 @@ module Neo4j
53
55
  end
54
56
  end
55
57
 
56
- def version(session)
57
- result = query(session, 'CALL dbms.components()', {}, skip_instrumentation: true)
58
-
59
- # BTW: community / enterprise could be retrieved via `result.first.edition`
60
- result.first.versions[0]
61
- end
62
-
63
58
  def connected?
64
59
  !!@tcp_client && !@tcp_client.closed?
65
60
  end
66
61
 
67
- def indexes(session)
68
- result = query(session, 'CALL db.indexes()', {}, skip_instrumentation: true)
69
-
70
- result.map do |row|
71
- label, property = row.description.match(/INDEX ON :([^\(]+)\(([^\)]+)\)/)[1, 2]
72
- {type: row.type.to_sym, label: label.to_sym, properties: [property.to_sym], state: row.state.to_sym}
73
- end
74
- end
75
-
76
- def constraints(session)
77
- result = query(session, 'CALL db.indexes()', {}, skip_instrumentation: true)
78
-
79
- result.select { |row| row.type == 'node_unique_property' }.map do |row|
80
- label, property = row.description.match(/INDEX ON :([^\(]+)\(([^\)]+)\)/)[1, 2]
81
- {type: :uniqueness, label: label.to_sym, properties: [property.to_sym]}
82
- end
83
- end
84
-
85
62
  def self.transaction_class
86
63
  require 'neo4j/core/cypher_session/transactions/bolt'
87
64
  Neo4j::Core::CypherSession::Transactions::Bolt
@@ -0,0 +1,107 @@
1
+ require 'neo4j/core/cypher_session/adaptors'
2
+ require 'neo4j/core/cypher_session/adaptors/has_uri'
3
+ require 'neo4j/core/cypher_session/adaptors/schema'
4
+ require 'neo4j/core/cypher_session/responses/driver'
5
+ require 'singleton'
6
+
7
+ module Neo4j
8
+ module Core
9
+ class CypherSession
10
+ module Adaptors
11
+ # The registry is necessary due to the specs constantly creating new CypherSessions.
12
+ # Closing a driver is costly. Not closing it prevents the process from termination.
13
+ # The registry allows reusage of drivers which are thread safe and conveniently closing them in one call.
14
+ class DriverRegistry < Hash
15
+ include Singleton
16
+
17
+ at_exit do
18
+ instance.close_all
19
+ end
20
+
21
+ def initialize
22
+ super
23
+ @mutex = Mutex.new
24
+ end
25
+
26
+ def driver_for(url)
27
+ uri = URI(url)
28
+ user = uri.user
29
+ password = uri.password
30
+ auth_token = if user
31
+ Neo4j::Driver::AuthTokens.basic(user, password)
32
+ else
33
+ Neo4j::Driver::AuthTokens.none
34
+ end
35
+ @mutex.synchronize { self[url] ||= Neo4j::Driver::GraphDatabase.driver(url, auth_token) }
36
+ end
37
+
38
+ def close(driver)
39
+ delete(key(driver))
40
+ driver.close
41
+ end
42
+
43
+ def close_all
44
+ values.each(&:close)
45
+ clear
46
+ end
47
+ end
48
+
49
+ class Driver < Base
50
+ include Adaptors::HasUri
51
+ include Adaptors::Schema
52
+ default_url('bolt://neo4:neo4j@localhost:7687')
53
+ validate_uri do |uri|
54
+ uri.scheme == 'bolt'
55
+ end
56
+
57
+ attr_reader :driver
58
+ alias connected? driver
59
+
60
+ def initialize(url, options = {})
61
+ self.url = url
62
+ @driver = DriverRegistry.instance.driver_for(url)
63
+ @options = options
64
+ end
65
+
66
+ def connect; end
67
+
68
+ def close
69
+ DriverRegistry.instance.close(driver)
70
+ end
71
+
72
+ def query_set(transaction, queries, options = {})
73
+ setup_queries!(queries, transaction, skip_instrumentation: options[:skip_instrumentation])
74
+
75
+ responses = queries.map do |query|
76
+ transaction.root_tx.run(query.cypher, query.parameters)
77
+ end
78
+ wrap_level = options[:wrap_level] || @options[:wrap_level]
79
+ Responses::Driver.new(responses, wrap_level: wrap_level).results
80
+ rescue Neo4j::Driver::Exceptions::Neo4jException => e
81
+ raise Neo4j::Core::CypherSession::CypherError.new_from(e.code, e.message) # , e.stack_track.to_a
82
+ end
83
+
84
+ # def transaction(_session, &block)
85
+ # session = driver.session(org.neo4j.driver.v1.AccessMode::WRITE)
86
+ # session.writeTransaction(&block)
87
+ # ensure
88
+ # session.close
89
+ # end
90
+
91
+ def self.transaction_class
92
+ require 'neo4j/core/cypher_session/transactions/driver'
93
+ Neo4j::Core::CypherSession::Transactions::Driver
94
+ end
95
+
96
+ instrument(:request, 'neo4j.core.bolt.request', %w[adaptor body]) do |_, start, finish, _id, payload|
97
+ ms = (finish - start) * 1000
98
+ adaptor = payload[:adaptor]
99
+
100
+ type = nil # adaptor.ssl? ? '+TLS' : ' UNSECURE'
101
+ " #{ANSI::BLUE}BOLT#{type}:#{ANSI::CLEAR} #{ANSI::YELLOW}#{ms.round}ms#{ANSI::CLEAR} #{adaptor.url_without_password}"
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -91,6 +91,10 @@ module Neo4j
91
91
  " #{ANSI::BLUE}EMBEDDED CYPHER TRANSACTION:#{ANSI::CLEAR} #{ANSI::YELLOW}#{ms.round}ms#{ANSI::CLEAR}"
92
92
  end
93
93
 
94
+ def default_subscribe
95
+ subscribe_to_transaction
96
+ end
97
+
94
98
  private
95
99
 
96
100
  def execution_results(queries)
@@ -102,6 +102,10 @@ module Neo4j
102
102
  !!@requestor
103
103
  end
104
104
 
105
+ def supports_metadata?
106
+ Gem::Version.new(version(nil)) >= Gem::Version.new('2.1.5')
107
+ end
108
+
105
109
  # Basic wrapper around HTTP requests to standard Neo4j HTTP endpoints
106
110
  # - Takes care of JSONifying objects passed as body (Hash/Array/Query)
107
111
  # - Sets headers, including user agent string
@@ -0,0 +1,34 @@
1
+ module Neo4j
2
+ module Core
3
+ class CypherSession
4
+ module Adaptors
5
+ module Schema
6
+ def version(session)
7
+ result = query(session, 'CALL dbms.components()', {}, skip_instrumentation: true)
8
+
9
+ # BTW: community / enterprise could be retrieved via `result.first.edition`
10
+ result.first.versions[0]
11
+ end
12
+
13
+ def indexes(session)
14
+ result = query(session, 'CALL db.indexes()', {}, skip_instrumentation: true)
15
+
16
+ result.map do |row|
17
+ label, property = row.description.match(/INDEX ON :([^\(]+)\(([^\)]+)\)/)[1, 2]
18
+ {type: row.type.to_sym, label: label.to_sym, properties: [property.to_sym], state: row.state.to_sym}
19
+ end
20
+ end
21
+
22
+ def constraints(session)
23
+ result = query(session, 'CALL db.indexes()', {}, skip_instrumentation: true)
24
+
25
+ result.select { |row| row.type == 'node_unique_property' }.map do |row|
26
+ label, property = row.description.match(/INDEX ON :([^\(]+)\(([^\)]+)\)/)[1, 2]
27
+ {type: :uniqueness, label: label.to_sym, properties: [property.to_sym]}
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,71 @@
1
+ require 'neo4j/core/cypher_session/responses'
2
+
3
+ module Neo4j
4
+ module Core
5
+ class CypherSession
6
+ module Responses
7
+ class Driver < Base
8
+ attr_reader :results
9
+
10
+ def initialize(responses, options = {})
11
+ @wrap_level = options[:wrap_level] || Neo4j::Core::Config.wrapping_level
12
+
13
+ @results = responses.map(&method(:result_from_data))
14
+ end
15
+
16
+ def result_from_data(entities_data)
17
+ rows = entities_data.map do |entity_data|
18
+ wrap_value(entity_data.values)
19
+ end
20
+
21
+ Neo4j::Core::CypherSession::Result.new(entities_data.keys, rows)
22
+ end
23
+
24
+ def wrap_by_level(none_proc)
25
+ super(@wrap_level == :none ? none_proc.call : nil)
26
+ end
27
+
28
+ private
29
+
30
+ # In the future the ::Neo4j::Core::Node should either monkey patch or wrap Neo4j::Driver:Types::Node to avoid
31
+ # multiple object creation. This is probably best done once the other adapters (http, embedded) are removed.
32
+ def wrap_node(node)
33
+ wrap_by_level(-> { node.properties }) { ::Neo4j::Core::Node.new(node.id, node.labels, node.properties) }
34
+ end
35
+
36
+ def wrap_relationship(rel)
37
+ wrap_by_level(-> { rel.properties }) do
38
+ ::Neo4j::Core::Relationship.new(rel.id, rel.type, rel.properties, rel.start_node_id, rel.end_node_id)
39
+ end
40
+ end
41
+
42
+ def wrap_path(path)
43
+ nodes = path.nodes
44
+ relationships = path.relationships
45
+ wrap_by_level(-> { nodes.zip(relationships).flatten.compact.map(&:properties) }) do
46
+ ::Neo4j::Core::Path.new(nodes.map(&method(:wrap_node)),
47
+ relationships.map(&method(:wrap_relationship)),
48
+ nil) # remove directions from Path, looks like unused
49
+ end
50
+ end
51
+
52
+ def wrap_value(value)
53
+ if value.is_a? Array
54
+ value.map(&method(:wrap_value))
55
+ elsif value.is_a? Hash
56
+ value.map { |key, val| [key, wrap_value(val)] }.to_h
57
+ elsif value.is_a? Neo4j::Driver::Types::Node
58
+ wrap_node(value)
59
+ elsif value.is_a? Neo4j::Driver::Types::Relationship
60
+ wrap_relationship(value)
61
+ elsif value.is_a? Neo4j::Driver::Types::Path
62
+ wrap_path(value)
63
+ else
64
+ value
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,55 @@
1
+ require 'neo4j/core/cypher_session/transactions'
2
+
3
+ module Neo4j
4
+ module Core
5
+ class CypherSession
6
+ module Transactions
7
+ class Driver < Base
8
+ attr_reader :driver_tx, :driver_session
9
+
10
+ def initialize(*args)
11
+ super
12
+ return unless root?
13
+ @driver_session = session.adaptor.driver.session(Neo4j::Driver::AccessMode::WRITE)
14
+ @driver_tx = @driver_session.begin_transaction
15
+ rescue StandardError => e
16
+ clean_transaction_registry
17
+ @driver_tx.close if @driver_tx
18
+ @driver_session.close if @driver_session
19
+ raise e
20
+ end
21
+
22
+ def commit
23
+ return unless root?
24
+ begin
25
+ @driver_tx.success
26
+ @driver_tx.close
27
+ ensure
28
+ @driver_session.close
29
+ end
30
+ end
31
+
32
+ def delete
33
+ root.driver_tx.failure
34
+ root.driver_tx.close
35
+ root.driver_session.close
36
+ end
37
+
38
+ def started?
39
+ true
40
+ end
41
+
42
+ def root_tx
43
+ root.driver_tx
44
+ end
45
+
46
+ private
47
+
48
+ def clean_transaction_registry
49
+ Neo4j::Transaction::TransactionsRegistry.transactions_by_session_id[session.object_id] = []
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,5 +1,5 @@
1
1
  module Neo4j
2
2
  module Core
3
- VERSION = '9.0.0.alpha.1'
3
+ VERSION = '9.0.0'
4
4
  end
5
5
  end
@@ -30,7 +30,6 @@ DESCRIPTION
30
30
  'bug_tracker_uri' => 'https://github.com/neo4jrb/neo4j-core/issues'
31
31
  }
32
32
 
33
-
34
33
  s.add_dependency('activesupport', '>= 4.0')
35
34
  s.add_dependency('faraday', '>= 0.9.0')
36
35
  s.add_dependency('faraday_middleware', '>= 0.10.0')
@@ -47,8 +46,9 @@ DESCRIPTION
47
46
  s.add_development_dependency('simplecov')
48
47
  s.add_development_dependency('yard')
49
48
 
50
- if RUBY_PLATFORM == 'java'
49
+ if RUBY_PLATFORM =~ /java/
51
50
  s.add_development_dependency('neo4j-community', '>= 2.1.1')
51
+ s.add_development_dependency('neo4j-ruby-driver', '1.7.1.beta1')
52
52
  s.add_development_dependency 'ruby-debug'
53
53
  end
54
54
 
metadata CHANGED
@@ -1,255 +1,297 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0.alpha.1
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Ronge, Chris Grigg, Brian Underwood
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-28 00:00:00.000000000 Z
11
+ date: 2018-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '4.0'
20
- type: :runtime
19
+ name: activesupport
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
32
  version: 0.9.0
34
- type: :runtime
33
+ name: faraday
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.9.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: faraday_middleware
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: 0.10.0
48
- type: :runtime
47
+ name: faraday_middleware
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.10.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: faraday_middleware-multi_json
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- type: :runtime
61
+ name: faraday_middleware-multi_json
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: httpclient
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  version: '0'
76
- type: :runtime
75
+ name: httpclient
77
76
  prerelease: false
77
+ type: :runtime
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: json
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
88
87
  - !ruby/object:Gem::Version
89
88
  version: '0'
90
- type: :runtime
89
+ name: json
91
90
  prerelease: false
91
+ type: :runtime
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: multi_json
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - ">="
102
101
  - !ruby/object:Gem::Version
103
102
  version: '0'
104
- type: :runtime
103
+ name: multi_json
105
104
  prerelease: false
105
+ type: :runtime
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: net_tcp_client
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
114
  - - ">="
116
115
  - !ruby/object:Gem::Version
117
116
  version: 2.0.1
118
- type: :runtime
117
+ name: net_tcp_client
119
118
  prerelease: false
119
+ type: :runtime
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 2.0.1
125
125
  - !ruby/object:Gem::Dependency
126
- name: typhoeus
127
126
  requirement: !ruby/object:Gem::Requirement
128
127
  requirements:
129
128
  - - ">="
130
129
  - !ruby/object:Gem::Version
131
130
  version: 1.1.2
132
- type: :runtime
131
+ name: typhoeus
133
132
  prerelease: false
133
+ type: :runtime
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.1.2
139
139
  - !ruby/object:Gem::Dependency
140
- name: dryspec
141
140
  requirement: !ruby/object:Gem::Requirement
142
141
  requirements:
143
142
  - - ">="
144
143
  - !ruby/object:Gem::Version
145
144
  version: '0'
146
- type: :development
145
+ name: dryspec
147
146
  prerelease: false
147
+ type: :development
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: neo4j-rake_tasks
155
154
  requirement: !ruby/object:Gem::Requirement
156
155
  requirements:
157
156
  - - ">="
158
157
  - !ruby/object:Gem::Version
159
158
  version: 0.3.0
160
- type: :development
159
+ name: neo4j-rake_tasks
161
160
  prerelease: false
161
+ type: :development
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.3.0
167
167
  - !ruby/object:Gem::Dependency
168
- name: pry
169
168
  requirement: !ruby/object:Gem::Requirement
170
169
  requirements:
171
170
  - - ">="
172
171
  - !ruby/object:Gem::Version
173
172
  version: '0'
174
- type: :development
173
+ name: pry
175
174
  prerelease: false
175
+ type: :development
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
- name: simplecov
183
182
  requirement: !ruby/object:Gem::Requirement
184
183
  requirements:
185
184
  - - ">="
186
185
  - !ruby/object:Gem::Version
187
186
  version: '0'
188
- type: :development
187
+ name: simplecov
189
188
  prerelease: false
189
+ type: :development
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
- name: yard
197
196
  requirement: !ruby/object:Gem::Requirement
198
197
  requirements:
199
198
  - - ">="
200
199
  - !ruby/object:Gem::Version
201
200
  version: '0'
202
- type: :development
201
+ name: yard
203
202
  prerelease: false
203
+ type: :development
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
- name: guard
211
210
  requirement: !ruby/object:Gem::Requirement
212
211
  requirements:
213
212
  - - ">="
214
213
  - !ruby/object:Gem::Version
215
- version: '0'
214
+ version: 2.1.1
215
+ name: neo4j-community
216
+ prerelease: false
216
217
  type: :development
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 2.1.1
223
+ - !ruby/object:Gem::Dependency
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - '='
227
+ - !ruby/object:Gem::Version
228
+ version: 1.7.1.beta1
229
+ name: neo4j-ruby-driver
230
+ prerelease: false
231
+ type: :development
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '='
235
+ - !ruby/object:Gem::Version
236
+ version: 1.7.1.beta1
237
+ - !ruby/object:Gem::Dependency
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ name: ruby-debug
217
244
  prerelease: false
245
+ type: :development
218
246
  version_requirements: !ruby/object:Gem::Requirement
219
247
  requirements:
220
248
  - - ">="
221
249
  - !ruby/object:Gem::Version
222
250
  version: '0'
223
251
  - !ruby/object:Gem::Dependency
224
- name: guard-rubocop
225
252
  requirement: !ruby/object:Gem::Requirement
226
253
  requirements:
227
254
  - - ">="
228
255
  - !ruby/object:Gem::Version
229
256
  version: '0'
257
+ name: guard
258
+ prerelease: false
230
259
  type: :development
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ name: guard-rubocop
231
272
  prerelease: false
273
+ type: :development
232
274
  version_requirements: !ruby/object:Gem::Requirement
233
275
  requirements:
234
276
  - - ">="
235
277
  - !ruby/object:Gem::Version
236
278
  version: '0'
237
279
  - !ruby/object:Gem::Dependency
238
- name: rubocop
239
280
  requirement: !ruby/object:Gem::Requirement
240
281
  requirements:
241
282
  - - "~>"
242
283
  - !ruby/object:Gem::Version
243
284
  version: 0.56.0
244
- type: :development
285
+ name: rubocop
245
286
  prerelease: false
287
+ type: :development
246
288
  version_requirements: !ruby/object:Gem::Requirement
247
289
  requirements:
248
290
  - - "~>"
249
291
  - !ruby/object:Gem::Version
250
292
  version: 0.56.0
251
- description: " Neo4j-core provides classes and methods to work with the graph database
252
- Neo4j.\n"
293
+ description: " Neo4j-core provides classes and methods to work with the graph database\
294
+ \ Neo4j.\n"
253
295
  email: andreas.ronge@gmail.com, chris@subvertallmedia.com, brian@brian-underwood.codes
254
296
  executables: []
255
297
  extensions: []
@@ -268,16 +310,20 @@ files:
268
310
  - lib/neo4j/core/cypher_session/adaptors/bolt.rb
269
311
  - lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb
270
312
  - lib/neo4j/core/cypher_session/adaptors/bolt/pack_stream.rb
313
+ - lib/neo4j/core/cypher_session/adaptors/driver.rb
271
314
  - lib/neo4j/core/cypher_session/adaptors/embedded.rb
272
315
  - lib/neo4j/core/cypher_session/adaptors/has_uri.rb
273
316
  - lib/neo4j/core/cypher_session/adaptors/http.rb
317
+ - lib/neo4j/core/cypher_session/adaptors/schema.rb
274
318
  - lib/neo4j/core/cypher_session/responses.rb
275
319
  - lib/neo4j/core/cypher_session/responses/bolt.rb
320
+ - lib/neo4j/core/cypher_session/responses/driver.rb
276
321
  - lib/neo4j/core/cypher_session/responses/embedded.rb
277
322
  - lib/neo4j/core/cypher_session/responses/http.rb
278
323
  - lib/neo4j/core/cypher_session/result.rb
279
324
  - lib/neo4j/core/cypher_session/transactions.rb
280
325
  - lib/neo4j/core/cypher_session/transactions/bolt.rb
326
+ - lib/neo4j/core/cypher_session/transactions/driver.rb
281
327
  - lib/neo4j/core/cypher_session/transactions/embedded.rb
282
328
  - lib/neo4j/core/cypher_session/transactions/http.rb
283
329
  - lib/neo4j/core/helpers.rb
@@ -303,7 +349,7 @@ metadata:
303
349
  changelog_uri: https://github.com/neo4jrb/neo4j-core/blob/master/CHANGELOG.md
304
350
  source_code_uri: https://github.com/neo4jrb/neo4j-core/
305
351
  bug_tracker_uri: https://github.com/neo4jrb/neo4j-core/issues
306
- post_install_message:
352
+ post_install_message:
307
353
  rdoc_options:
308
354
  - "--quiet"
309
355
  - "--title"
@@ -321,13 +367,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
367
  version: 2.1.0
322
368
  required_rubygems_version: !ruby/object:Gem::Requirement
323
369
  requirements:
324
- - - ">"
370
+ - - ">="
325
371
  - !ruby/object:Gem::Version
326
- version: 1.3.1
372
+ version: '0'
327
373
  requirements: []
328
- rubyforge_project:
329
- rubygems_version: 2.7.7
330
- signing_key:
374
+ rubyforge_project:
375
+ rubygems_version: 2.7.6
376
+ signing_key:
331
377
  specification_version: 4
332
378
  summary: A basic library to work with the graph database Neo4j.
333
379
  test_files: []