neo4j-ruby-driver 1.7.0 → 1.7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ffi/neo4j/driver.rb +1 -0
- data/ffi/neo4j/driver/internal/async/direct_connection.rb +2 -2
- data/ffi/neo4j/driver/internal/driver_factory.rb +2 -1
- data/ffi/neo4j/driver/internal/error_handling.rb +5 -1
- data/ffi/neo4j/driver/internal/handlers/pull_all_response_handler.rb +2 -3
- data/ffi/neo4j/driver/internal/handlers/response_handler.rb +2 -2
- data/ffi/neo4j/driver/internal/value/path_value.rb +1 -1
- data/ffi/neo4j/driver/internal/value/value_adapter.rb +5 -3
- data/ffi/neo4j/driver/types/path.rb +1 -1
- data/lib/neo4j/driver/exceptions/neo4j_exception.rb +1 -2
- data/lib/neo4j/driver/internal/duration_normalizer.rb +2 -1
- data/lib/neo4j/driver/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd9fa45ff22c9cb38139fda7089c5e73f10ba00ba79768c65201106bcc2e08a6
|
4
|
+
data.tar.gz: 12ede6184057ce7bfe24e33a739abedf2bb47e4b9e920012dfa4b89fdda5cd3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e23309e67f7d78c389239fb56164d22f6d63dfdaef26ac7ba5cdb95e5bd1d4da7f631b445bd542414e05867100a039d1082a58905b2dc862c6efb88ce34316cf
|
7
|
+
data.tar.gz: 5c99db2e46c631acaa793fbdfd639725cc32a43e9ff513c9a60990ea502be395e7f3751a2cfd6f1b78c67b2ab6ab5eb6908ca8b68f59430c6f590ea4ad89b758
|
data/ffi/neo4j/driver.rb
CHANGED
@@ -22,11 +22,11 @@ module Neo4j
|
|
22
22
|
|
23
23
|
def write_and_flush(statement, parameters, boomarks_holder, config, run_handler, pull_handler)
|
24
24
|
check_error Bolt::Connection.clear_run(bolt_connection)
|
25
|
-
check_error Bolt::Connection.set_run_cypher(bolt_connection, statement, statement.
|
25
|
+
check_error Bolt::Connection.set_run_cypher(bolt_connection, statement, statement.bytesize, parameters.size)
|
26
26
|
parameters.each_with_index do |(name, object), index|
|
27
27
|
name = name.to_s
|
28
28
|
Value::ValueAdapter.to_neo(
|
29
|
-
Bolt::Connection.set_run_cypher_parameter(bolt_connection, index, name, name.
|
29
|
+
Bolt::Connection.set_run_cypher_parameter(bolt_connection, index, name, name.bytesize), object
|
30
30
|
)
|
31
31
|
end
|
32
32
|
set_bookmarks(:set_run_bookmarks, boomarks_holder.bookmarks)
|
@@ -23,7 +23,8 @@ module Neo4j
|
|
23
23
|
def create_connector(uri, auth_token, routing_context, config)
|
24
24
|
address = Bolt::Address.create(host(uri).gsub(/^\[(.*)\]$/, '\\1'), port(uri).to_s)
|
25
25
|
bolt_config = bolt_config(config)
|
26
|
-
logger
|
26
|
+
# callbacks from C to ruby used in logger may cause deadlocks on MRI
|
27
|
+
logger = InternalLogger.register(bolt_config, config[:logger]) if RUBY_PLATFORM.match?(/java/)
|
27
28
|
set_socket_options(bolt_config, config)
|
28
29
|
set_routing_context(bolt_config, routing_context)
|
29
30
|
set_scheme(bolt_config, uri, routing_context)
|
@@ -61,12 +61,11 @@ module Neo4j
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def on_failure(error)
|
64
|
+
@failure = error
|
64
65
|
summary
|
65
66
|
@finished = true
|
66
67
|
|
67
68
|
after_failure(error)
|
68
|
-
|
69
|
-
@failure = error
|
70
69
|
end
|
71
70
|
|
72
71
|
def finalize
|
@@ -95,7 +94,7 @@ module Neo4j
|
|
95
94
|
nil
|
96
95
|
end
|
97
96
|
rescue StandardError => e
|
98
|
-
on_failure(e)
|
97
|
+
on_failure(e) unless @failure
|
99
98
|
raise e
|
100
99
|
end
|
101
100
|
end
|
@@ -34,8 +34,8 @@ module Neo4j
|
|
34
34
|
after_success(nil)
|
35
35
|
else
|
36
36
|
return if previous&.failure
|
37
|
-
|
38
|
-
raise new_neo4j_error(
|
37
|
+
failure = Value::ValueAdapter.to_ruby(Bolt::Connection.failure(bolt_connection))
|
38
|
+
raise @failure = new_neo4j_error(**failure)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -13,7 +13,7 @@ module Neo4j
|
|
13
13
|
nodes = [prev_node] # Start node is always 0, and isn't encoded in the sequence
|
14
14
|
rels = []
|
15
15
|
path = Types::Path.new(nodes, rels)
|
16
|
-
sequence.in_groups_of(2) do |
|
16
|
+
sequence.in_groups_of(2) do |rel_idx, node_idx|
|
17
17
|
node = uniq_nodes[node_idx]
|
18
18
|
nodes << node
|
19
19
|
rel = uniq_rels[rel_idx.abs - 1] # -1 because rel idx are 1-indexed
|
@@ -50,6 +50,8 @@ module Neo4j
|
|
50
50
|
when String
|
51
51
|
object = object.encode(Encoding::UTF_8) unless object.encoding == Encoding::UTF_8
|
52
52
|
Bolt::Value.format_as_string(value, object, object.bytesize)
|
53
|
+
when Symbol
|
54
|
+
to_neo(value, object.to_s)
|
53
55
|
when Hash
|
54
56
|
Bolt::Value.format_as_dictionary(value, object.size)
|
55
57
|
object.each_with_index do |(key, elem), index|
|
@@ -63,8 +65,6 @@ module Neo4j
|
|
63
65
|
object = object.to_a
|
64
66
|
Bolt::Value.format_as_list(value, object.size)
|
65
67
|
object.each_with_index { |elem, index| to_neo(Bolt::List.value(value, index), elem) }
|
66
|
-
when Date
|
67
|
-
DateValue.to_neo(value, object)
|
68
68
|
when ActiveSupport::Duration
|
69
69
|
DurationValue.to_neo(value, object)
|
70
70
|
when Neo4j::Driver::Types::Point
|
@@ -84,8 +84,10 @@ module Neo4j
|
|
84
84
|
LocalDateTimeValue.to_neo(value, object)
|
85
85
|
when ActiveSupport::TimeWithZone
|
86
86
|
TimeWithZoneIdValue.to_neo(value, object)
|
87
|
-
when Time
|
87
|
+
when Time, DateTime
|
88
88
|
TimeWithZoneOffsetValue.to_neo(value, object)
|
89
|
+
when Date
|
90
|
+
DateValue.to_neo(value, object)
|
89
91
|
else
|
90
92
|
Exceptions::ClientException.unable_to_convert(object)
|
91
93
|
end
|
@@ -4,12 +4,11 @@ module Neo4j
|
|
4
4
|
module Driver
|
5
5
|
module Exceptions
|
6
6
|
class Neo4jException < RuntimeError
|
7
|
-
attr_reader :code, :
|
7
|
+
attr_reader :code, :suppressed
|
8
8
|
|
9
9
|
def initialize(*args)
|
10
10
|
@code = args.shift if args.count > 1
|
11
11
|
message = args.shift
|
12
|
-
@cause = args.shift
|
13
12
|
@suppressed = args.shift
|
14
13
|
super(message)
|
15
14
|
end
|
@@ -6,7 +6,8 @@ module Neo4j
|
|
6
6
|
module DurationNormalizer
|
7
7
|
class << self
|
8
8
|
def normalize(object)
|
9
|
-
parts = object.parts
|
9
|
+
parts = object.parts.to_h
|
10
|
+
parts.default = 0
|
10
11
|
months_i, months_remainder_seconds = divmod(months(parts), ActiveSupport::Duration::SECONDS_PER_MONTH)
|
11
12
|
months_days, months_remainder_seconds =
|
12
13
|
months_remainder_seconds.divmod(ActiveSupport::Duration::SECONDS_PER_DAY)
|
data/lib/neo4j/driver/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j-ruby-driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Heinrich Klobuczek
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -319,7 +319,7 @@ licenses:
|
|
319
319
|
- MIT
|
320
320
|
metadata:
|
321
321
|
homepage_uri: https://github.com/neo4jrb/neo4j-ruby-driver
|
322
|
-
post_install_message:
|
322
|
+
post_install_message:
|
323
323
|
rdoc_options:
|
324
324
|
- "--main"
|
325
325
|
- README.md
|
@@ -337,8 +337,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
337
337
|
- !ruby/object:Gem::Version
|
338
338
|
version: '0'
|
339
339
|
requirements: []
|
340
|
-
rubygems_version: 3.
|
341
|
-
signing_key:
|
340
|
+
rubygems_version: 3.2.3
|
341
|
+
signing_key:
|
342
342
|
specification_version: 4
|
343
343
|
summary: ''
|
344
344
|
test_files: []
|