neo4j 9.6.2 → 10.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|