neo4j-ruby-driver 1.7.0 → 1.7.5
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/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: []
|