neo4j 9.6.2 → 10.0.0.pre.alpha.1
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 +4 -4
- data/CHANGELOG.md +0 -13
- data/CONTRIBUTORS +4 -0
- data/Gemfile +2 -33
- data/lib/neo4j.rb +6 -2
- data/lib/neo4j/active_base.rb +19 -22
- data/lib/neo4j/active_node/has_n.rb +1 -1
- data/lib/neo4j/active_node/labels.rb +1 -11
- data/lib/neo4j/active_node/node_wrapper.rb +1 -1
- data/lib/neo4j/active_node/query/query_proxy_methods_of_mass_updating.rb +1 -1
- data/lib/neo4j/active_rel/rel_wrapper.rb +2 -2
- data/lib/neo4j/ansi.rb +14 -0
- data/lib/neo4j/core.rb +14 -0
- data/lib/neo4j/core/connection_failed_error.rb +6 -0
- data/lib/neo4j/core/cypher_error.rb +37 -0
- data/lib/neo4j/core/driver.rb +83 -0
- data/lib/neo4j/core/has_uri.rb +63 -0
- data/lib/neo4j/core/instrumentable.rb +36 -0
- data/lib/neo4j/core/label.rb +158 -0
- data/lib/neo4j/core/logging.rb +44 -0
- data/lib/neo4j/core/node.rb +23 -0
- data/lib/neo4j/core/querable.rb +88 -0
- data/lib/neo4j/core/query.rb +487 -0
- data/lib/neo4j/core/query_builder.rb +32 -0
- data/lib/neo4j/core/query_clauses.rb +727 -0
- data/lib/neo4j/core/query_find_in_batches.rb +49 -0
- data/lib/neo4j/core/relationship.rb +13 -0
- data/lib/neo4j/core/responses.rb +50 -0
- data/lib/neo4j/core/result.rb +33 -0
- data/lib/neo4j/core/schema.rb +30 -0
- data/lib/neo4j/core/schema_errors.rb +12 -0
- data/lib/neo4j/core/wrappable.rb +30 -0
- data/lib/neo4j/migration.rb +2 -2
- data/lib/neo4j/migrations/base.rb +1 -1
- data/lib/neo4j/model_schema.rb +2 -2
- data/lib/neo4j/railtie.rb +8 -52
- data/lib/neo4j/schema/operation.rb +1 -1
- data/lib/neo4j/shared.rb +1 -1
- data/lib/neo4j/shared/property.rb +1 -1
- data/lib/neo4j/tasks/migration.rake +5 -4
- data/lib/neo4j/transaction.rb +137 -0
- data/lib/neo4j/version.rb +1 -1
- data/neo4j.gemspec +5 -5
- metadata +59 -26
- data/bin/neo4j-jars +0 -33
- data/lib/neo4j/active_base/session_registry.rb +0 -12
- data/lib/neo4j/session_manager.rb +0 -78
data/lib/neo4j/version.rb
CHANGED
data/neo4j.gemspec
CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
|
11
11
|
s.required_ruby_version = ((RUBY_PLATFORM == 'java') ? '>= 1.9.3' : '>= 2.1.9')
|
12
12
|
|
13
|
-
s.authors = 'Andreas Ronge, Brian Underwood, Chris Grigg'
|
14
|
-
s.email = 'andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com'
|
13
|
+
s.authors = 'Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek'
|
14
|
+
s.email = 'andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com, heinrich@mail.com'
|
15
15
|
s.homepage = 'https://github.com/neo4jrb/neo4j/'
|
16
16
|
s.rubyforge_project = 'neo4j'
|
17
17
|
s.summary = 'A graph database for Ruby'
|
@@ -22,7 +22,7 @@ DESCRIPTION
|
|
22
22
|
|
23
23
|
s.require_path = 'lib'
|
24
24
|
s.files = Dir.glob('{bin,lib,config}/**/*') + %w(README.md CHANGELOG.md CONTRIBUTORS Gemfile neo4j.gemspec)
|
25
|
-
s.executables = [
|
25
|
+
s.executables = []
|
26
26
|
s.extra_rdoc_files = %w( README.md )
|
27
27
|
s.rdoc_options = ['--quiet', '--title', 'Neo4j.rb', '--line-numbers', '--main', 'README.rdoc', '--inline-source']
|
28
28
|
s.metadata = {
|
@@ -35,17 +35,17 @@ DESCRIPTION
|
|
35
35
|
s.add_dependency('activemodel', '>= 4.0')
|
36
36
|
s.add_dependency('activesupport', '>= 4.0')
|
37
37
|
s.add_dependency('i18n', '!= 1.3.0') # version 1.3.0 introduced a bug with `symbolize_key`
|
38
|
-
s.add_dependency('neo4j-core', '>= 9.0.0')
|
39
38
|
s.add_dependency('orm_adapter', '~> 0.5.0')
|
40
39
|
s.add_development_dependency('guard')
|
41
40
|
s.add_development_dependency('guard-rspec')
|
42
41
|
s.add_development_dependency('guard-rubocop')
|
43
|
-
s.add_development_dependency('neo4j-community', '~> 2.0') if RUBY_PLATFORM =~ /java/
|
44
42
|
s.add_development_dependency('neo4j-rake_tasks', '>= 0.3.0')
|
43
|
+
s.add_development_dependency("neo4j-#{RUBY_PLATFORM =~ /java/ ? 'java' : 'ruby'}-driver", '>= 0.1.5')
|
45
44
|
s.add_development_dependency('os')
|
46
45
|
s.add_development_dependency('pry')
|
47
46
|
s.add_development_dependency('railties', '>= 4.0')
|
48
47
|
s.add_development_dependency('rake')
|
49
48
|
s.add_development_dependency('rubocop', '~> 0.56.0')
|
50
49
|
s.add_development_dependency('yard')
|
50
|
+
s.add_development_dependency('dryspec')
|
51
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.0.0.pre.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Andreas Ronge, Brian Underwood, Chris Grigg
|
7
|
+
- Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "!="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.3.0
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: neo4j-core
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 9.0.0
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 9.0.0
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: orm_adapter
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +122,20 @@ dependencies:
|
|
136
122
|
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: 0.3.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: neo4j-ruby-driver
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.1.5
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.1.5
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: os
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,12 +220,26 @@ dependencies:
|
|
220
220
|
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: dryspec
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
223
237
|
description: 'A Neo4j OGM (Object-Graph-Mapper) for Ruby heavily inspired by ActiveRecord.
|
224
238
|
|
225
239
|
'
|
226
|
-
email: andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com
|
227
|
-
|
228
|
-
|
240
|
+
email: andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com,
|
241
|
+
heinrich@mail.com
|
242
|
+
executables: []
|
229
243
|
extensions: []
|
230
244
|
extra_rdoc_files:
|
231
245
|
- README.md
|
@@ -234,14 +248,12 @@ files:
|
|
234
248
|
- CONTRIBUTORS
|
235
249
|
- Gemfile
|
236
250
|
- README.md
|
237
|
-
- bin/neo4j-jars
|
238
251
|
- bin/rake
|
239
252
|
- config/locales/en.yml
|
240
253
|
- config/neo4j/add_classnames.yml
|
241
254
|
- config/neo4j/config.yml
|
242
255
|
- lib/neo4j.rb
|
243
256
|
- lib/neo4j/active_base.rb
|
244
|
-
- lib/neo4j/active_base/session_registry.rb
|
245
257
|
- lib/neo4j/active_node.rb
|
246
258
|
- lib/neo4j/active_node/callbacks.rb
|
247
259
|
- lib/neo4j/active_node/dependent.rb
|
@@ -290,9 +302,30 @@ files:
|
|
290
302
|
- lib/neo4j/active_rel/related_node.rb
|
291
303
|
- lib/neo4j/active_rel/types.rb
|
292
304
|
- lib/neo4j/active_rel/validations.rb
|
305
|
+
- lib/neo4j/ansi.rb
|
293
306
|
- lib/neo4j/class_arguments.rb
|
294
307
|
- lib/neo4j/config.rb
|
308
|
+
- lib/neo4j/core.rb
|
309
|
+
- lib/neo4j/core/connection_failed_error.rb
|
310
|
+
- lib/neo4j/core/cypher_error.rb
|
311
|
+
- lib/neo4j/core/driver.rb
|
312
|
+
- lib/neo4j/core/has_uri.rb
|
313
|
+
- lib/neo4j/core/instrumentable.rb
|
314
|
+
- lib/neo4j/core/label.rb
|
315
|
+
- lib/neo4j/core/logging.rb
|
316
|
+
- lib/neo4j/core/node.rb
|
317
|
+
- lib/neo4j/core/querable.rb
|
318
|
+
- lib/neo4j/core/query.rb
|
319
|
+
- lib/neo4j/core/query_builder.rb
|
320
|
+
- lib/neo4j/core/query_clauses.rb
|
295
321
|
- lib/neo4j/core/query_ext.rb
|
322
|
+
- lib/neo4j/core/query_find_in_batches.rb
|
323
|
+
- lib/neo4j/core/relationship.rb
|
324
|
+
- lib/neo4j/core/responses.rb
|
325
|
+
- lib/neo4j/core/result.rb
|
326
|
+
- lib/neo4j/core/schema.rb
|
327
|
+
- lib/neo4j/core/schema_errors.rb
|
328
|
+
- lib/neo4j/core/wrappable.rb
|
296
329
|
- lib/neo4j/errors.rb
|
297
330
|
- lib/neo4j/migration.rb
|
298
331
|
- lib/neo4j/migrations.rb
|
@@ -310,7 +343,6 @@ files:
|
|
310
343
|
- lib/neo4j/paginated.rb
|
311
344
|
- lib/neo4j/railtie.rb
|
312
345
|
- lib/neo4j/schema/operation.rb
|
313
|
-
- lib/neo4j/session_manager.rb
|
314
346
|
- lib/neo4j/shared.rb
|
315
347
|
- lib/neo4j/shared/attributes.rb
|
316
348
|
- lib/neo4j/shared/callbacks.rb
|
@@ -338,6 +370,7 @@ files:
|
|
338
370
|
- lib/neo4j/timestamps.rb
|
339
371
|
- lib/neo4j/timestamps/created.rb
|
340
372
|
- lib/neo4j/timestamps/updated.rb
|
373
|
+
- lib/neo4j/transaction.rb
|
341
374
|
- lib/neo4j/type_converters.rb
|
342
375
|
- lib/neo4j/undeclared_properties.rb
|
343
376
|
- lib/neo4j/version.rb
|
@@ -377,11 +410,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
377
410
|
version: 2.1.9
|
378
411
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
379
412
|
requirements:
|
380
|
-
- - "
|
413
|
+
- - ">"
|
381
414
|
- !ruby/object:Gem::Version
|
382
|
-
version:
|
415
|
+
version: 1.3.1
|
383
416
|
requirements: []
|
384
|
-
rubygems_version: 3.
|
417
|
+
rubygems_version: 3.0.6
|
385
418
|
signing_key:
|
386
419
|
specification_version: 4
|
387
420
|
summary: A graph database for Ruby
|
data/bin/neo4j-jars
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'neo4j'
|
4
|
-
|
5
|
-
if ARGV.empty?
|
6
|
-
puts <<TEXT
|
7
|
-
A tool for copying jar files needed by the application server, like trinidad
|
8
|
-
It copies all jar files which has been required (neo4j-community, neo4j-advanced or neo4j-enterprise) to the lib folder of the current directory
|
9
|
-
|
10
|
-
Usage: neo4j-jars <community|advanced|enterprise>
|
11
|
-
|
12
|
-
TEXT
|
13
|
-
exit
|
14
|
-
end
|
15
|
-
|
16
|
-
if ARGV.include?('community')
|
17
|
-
require 'neo4j-community' # not really needed
|
18
|
-
elsif ARGV.include?('advanced')
|
19
|
-
require 'neo4j-advanced' # not really needed
|
20
|
-
elsif ARGV.include?('enterprise')
|
21
|
-
require 'neo4j-enterprise' # not really needed
|
22
|
-
else
|
23
|
-
puts 'Expected community, advanced, enterprise'
|
24
|
-
exit(-1)
|
25
|
-
end
|
26
|
-
|
27
|
-
lib_dir = File.join(Dir.pwd, 'lib')
|
28
|
-
fail "Expected a lib folder where to copy the jars file, mkdir #{lib_dir}? " unless File.exist?(lib_dir)
|
29
|
-
|
30
|
-
files = $CLASSPATH.find_all { |x| x =~ /\.jar$/ }.collect { |y| y.sub('file:', '') }
|
31
|
-
files.each { |file| FileUtils.cp(file, lib_dir) }
|
32
|
-
|
33
|
-
puts "copied #{files.size} files to #{lib_dir}"
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'active_support/per_thread_registry'
|
2
|
-
|
3
|
-
module Neo4j
|
4
|
-
module ActiveBase
|
5
|
-
# Provides a simple API to manage sessions in a thread-safe manner
|
6
|
-
class SessionRegistry
|
7
|
-
extend ActiveSupport::PerThreadRegistry
|
8
|
-
|
9
|
-
attr_accessor :current_session
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'active_support/core_ext/hash'
|
2
|
-
require 'active_support/ordered_options'
|
3
|
-
|
4
|
-
module Neo4j
|
5
|
-
class SessionManager
|
6
|
-
class << self
|
7
|
-
def open_neo4j_session(type, url_or_path, wait_for_connection = false, options = {})
|
8
|
-
enable_unlimited_strength_crypto! if java_platform? && session_type_is_embedded?(type)
|
9
|
-
|
10
|
-
verbose_query_logs = Neo4j::Config.fetch(:verbose_query_logs, false)
|
11
|
-
adaptor = cypher_session_adaptor(type, url_or_path, options.merge(wrap_level: :proc,
|
12
|
-
verbose_query_logs: verbose_query_logs))
|
13
|
-
session = Neo4j::Core::CypherSession.new(adaptor)
|
14
|
-
wait_and_retry(session) if wait_for_connection
|
15
|
-
session
|
16
|
-
end
|
17
|
-
|
18
|
-
def adaptor_class(type, options)
|
19
|
-
options[:adaptor_class] || adaptor_class_by_type(type.to_sym)
|
20
|
-
end
|
21
|
-
|
22
|
-
protected
|
23
|
-
|
24
|
-
def session_type_is_embedded?(session_type)
|
25
|
-
[:embedded_db, :embedded].include?(session_type)
|
26
|
-
end
|
27
|
-
|
28
|
-
def enable_unlimited_strength_crypto!
|
29
|
-
# See https://github.com/jruby/jruby/wiki/UnlimitedStrengthCrypto
|
30
|
-
security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
|
31
|
-
restricted_field = security_class.get_declared_field('isRestricted')
|
32
|
-
restricted_field.accessible = true
|
33
|
-
restricted_field.set nil, false
|
34
|
-
end
|
35
|
-
|
36
|
-
def cypher_session_adaptor(type, path_or_url, options = {})
|
37
|
-
adaptor_class(type, options).new(path_or_url, options)
|
38
|
-
end
|
39
|
-
|
40
|
-
def java_platform?
|
41
|
-
RUBY_PLATFORM =~ /java/
|
42
|
-
end
|
43
|
-
|
44
|
-
def wait_and_retry(session)
|
45
|
-
Timeout.timeout(60) do
|
46
|
-
begin
|
47
|
-
session.constraints
|
48
|
-
rescue Neo4j::Core::CypherSession::ConnectionFailedError
|
49
|
-
sleep(1)
|
50
|
-
retry
|
51
|
-
end
|
52
|
-
end
|
53
|
-
rescue Timeout::Error
|
54
|
-
raise Timeout::Error, 'Timeout while waiting for connection to neo4j database'
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def adaptor_class_by_type(type)
|
60
|
-
ActiveSupport::Deprecation.warn('`embedded_db` session type is deprecated, please use `embedded`') if type == :embedded_db
|
61
|
-
case type
|
62
|
-
when :embedded_db, :embedded
|
63
|
-
require 'neo4j/core/cypher_session/adaptors/embedded'
|
64
|
-
Neo4j::Core::CypherSession::Adaptors::Embedded
|
65
|
-
when :http
|
66
|
-
require 'neo4j/core/cypher_session/adaptors/http'
|
67
|
-
Neo4j::Core::CypherSession::Adaptors::HTTP
|
68
|
-
when :bolt
|
69
|
-
require 'neo4j/core/cypher_session/adaptors/bolt'
|
70
|
-
Neo4j::Core::CypherSession::Adaptors::Bolt
|
71
|
-
else
|
72
|
-
extra = ' (`server_db` has been replaced by `http` or `bolt`)'
|
73
|
-
fail ArgumentError, "Invalid session type: #{type.inspect} (expected one of [:http, :bolt, :embedded])#{extra if type == :server_db}"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|