neo4j 9.4.0 → 9.5.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 +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +6 -1
- data/lib/neo4j.rb +2 -0
- data/lib/neo4j/active_node/has_n.rb +1 -1
- data/lib/neo4j/active_node/has_n/association.rb +1 -1
- data/lib/neo4j/active_node/query/query_proxy.rb +5 -1
- data/lib/neo4j/active_node/query/query_proxy_eager_loading.rb +19 -52
- data/lib/neo4j/active_node/query/query_proxy_eager_loading/association_tree.rb +75 -0
- data/lib/neo4j/active_node/rels.rb +10 -0
- data/lib/neo4j/session_manager.rb +14 -21
- data/lib/neo4j/version.rb +1 -1
- metadata +38 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d29f60a9c7d8ae6a2415d1ff37d4bad444a21853dbce515c95824d2a83540d0
|
4
|
+
data.tar.gz: c1bb5780fa1bde00cbbd3fbff425190012a2de19a0a0b22f836f5e6fc10ffb3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e67d937270cfb963b8e3ee4326c0946bbff1c4d21290e54def9eeeec10c5bd258df93d8f05f3241f94c56401a136fc4588d79e198a5d0bfdecf170bb1e3f0683
|
7
|
+
data.tar.gz: 95756152b26bfd067535b680040827872de54fc89e87f1f6f38053b1fa7df9671bb4e20aceb9d4de07695b0573e946765f2568da0029fff2ba71715f11ac4fb9
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
This file should follow the standards specified on [http://keepachangelog.com/]
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## [9.5.0] 2019-06-17
|
7
|
+
|
8
|
+
## Added
|
9
|
+
|
10
|
+
- Variable length relatinships in eager laoding (thanks @amitsuryavanshi / #1545)
|
11
|
+
|
12
|
+
## Fixed
|
13
|
+
|
14
|
+
- fixed `wait_for_connection` (thanks @ayghor / see #1540)
|
15
|
+
- Reverse has_one relationships (thanks @amitsuryavanshi / #1548)
|
16
|
+
- Missing require 'forwardable' (thanks @jschulenklopper / #1535)
|
17
|
+
|
6
18
|
## [9.4.0] 2018-12-20
|
7
19
|
|
8
20
|
## Added
|
data/README.md
CHANGED
@@ -91,11 +91,16 @@ Neo4j.rb v4.1.0 was released in January of 2015. Its changes are outlined [here]
|
|
91
91
|
|
92
92
|
* [Andreas Ronge](https://github.com/andreasronge)
|
93
93
|
|
94
|
-
###
|
94
|
+
### Previous Maintainers
|
95
95
|
|
96
96
|
* [Brian Underwood](https://github.com/cheerfulstoic)
|
97
97
|
* [Chris Grigg](https://github.com/subvertallchris)
|
98
98
|
|
99
|
+
### Current Maintainers
|
100
|
+
|
101
|
+
* [Heinrich Klobuczek](https://github.com/klobuczek)
|
102
|
+
* [Amit Suryavanshi](https://github.com/amitsuryavanshi)
|
103
|
+
|
99
104
|
## Contributing
|
100
105
|
|
101
106
|
Always welcome! Please review the [guidelines for contributing](CONTRIBUTING.md) to this repository.
|
data/lib/neo4j.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'forwardable'
|
1
2
|
require 'neo4j/version'
|
2
3
|
|
3
4
|
require 'neo4j-core'
|
@@ -71,6 +72,7 @@ require 'neo4j/active_node/query/query_proxy_methods_of_mass_updating'
|
|
71
72
|
require 'neo4j/active_node/query/query_proxy_enumerable'
|
72
73
|
require 'neo4j/active_node/query/query_proxy_find_in_batches'
|
73
74
|
require 'neo4j/active_node/query/query_proxy_eager_loading'
|
75
|
+
require 'neo4j/active_node/query/query_proxy_eager_loading/association_tree'
|
74
76
|
require 'neo4j/active_node/query/query_proxy_link'
|
75
77
|
require 'neo4j/active_node/labels/index'
|
76
78
|
require 'neo4j/active_node/labels/reloading'
|
@@ -207,7 +207,11 @@ module Neo4j
|
|
207
207
|
|
208
208
|
Neo4j::ActiveBase.run_transaction do
|
209
209
|
other_nodes.each do |other_node|
|
210
|
-
|
210
|
+
if other_node.neo_id
|
211
|
+
other_node.try(:delete_reverse_relationship, association)
|
212
|
+
else
|
213
|
+
other_node.save
|
214
|
+
end
|
211
215
|
|
212
216
|
@start_object.association_proxy_cache.clear
|
213
217
|
|
@@ -8,52 +8,6 @@ module Neo4j
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
class AssociationTree < Hash
|
12
|
-
attr_accessor :model, :name, :association, :path
|
13
|
-
|
14
|
-
def initialize(model, name = nil)
|
15
|
-
super()
|
16
|
-
self.model = name ? target_class(model, name) : model
|
17
|
-
self.name = name
|
18
|
-
self.association = name ? model.associations[name] : nil
|
19
|
-
end
|
20
|
-
|
21
|
-
def clone
|
22
|
-
super.tap { |copy| copy.each { |key, value| copy[key] = value.clone } }
|
23
|
-
end
|
24
|
-
|
25
|
-
def add_spec(spec)
|
26
|
-
unless model
|
27
|
-
fail "Cannot eager load \"past\" a polymorphic association. \
|
28
|
-
(Since the association can return multiple models, we don't how to handle the \"#{spec}\" association.)"
|
29
|
-
end
|
30
|
-
|
31
|
-
if spec.is_a?(Array)
|
32
|
-
spec.each { |s| add_spec(s) }
|
33
|
-
elsif spec.is_a?(Hash)
|
34
|
-
process_hash(spec)
|
35
|
-
else
|
36
|
-
self[spec] ||= self.class.new(model, spec)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def paths(*prefix)
|
41
|
-
values.flat_map { |v| [[*prefix, v]] + v.paths(*prefix, v) }
|
42
|
-
end
|
43
|
-
|
44
|
-
def process_hash(spec)
|
45
|
-
spec.each { |k, v| (self[k] ||= self.class.new(model, k)).add_spec(v) }
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
def target_class(model, key)
|
51
|
-
association = model.associations[key]
|
52
|
-
fail "Invalid association: #{[*path, key].join('.')}" unless association
|
53
|
-
model.associations[key].target_class
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
11
|
def pluck_vars(node, rel)
|
58
12
|
with_associations_tree.empty? ? super : perform_query
|
59
13
|
end
|
@@ -68,7 +22,6 @@ module Neo4j
|
|
68
22
|
add_to_cache(*eager_record, element)
|
69
23
|
end
|
70
24
|
end
|
71
|
-
|
72
25
|
record
|
73
26
|
end
|
74
27
|
end
|
@@ -115,6 +68,7 @@ module Neo4j
|
|
115
68
|
|
116
69
|
def init_associations(node, element)
|
117
70
|
element.each_key { |key| node.association_proxy(key).init_cache }
|
71
|
+
node.association_proxy(element.name).init_cache if element.rel_length == ''
|
118
72
|
end
|
119
73
|
|
120
74
|
def cache_and_init(node, element)
|
@@ -176,10 +130,15 @@ module Neo4j
|
|
176
130
|
def with_association_query_part(base_query, path, previous_with_vars)
|
177
131
|
optional_match_with_where(base_query, path, previous_with_vars)
|
178
132
|
.with(identity,
|
179
|
-
"[
|
133
|
+
"[#{relationship_collection(path)}, collect(#{escape path_name(path)})] "\
|
134
|
+
"AS #{escape("#{path_name(path)}_collection")}",
|
180
135
|
*previous_with_vars)
|
181
136
|
end
|
182
137
|
|
138
|
+
def relationship_collection(path)
|
139
|
+
path.last.rel_length ? "collect(last(relationships(#{escape("#{path_name(path)}_path")})))" : "collect(#{escape("#{path_name(path)}_rel")})"
|
140
|
+
end
|
141
|
+
|
183
142
|
def optional_match_with_where(base_query, path, _)
|
184
143
|
path
|
185
144
|
.each_with_index.map { |_, index| path[0..index] }
|
@@ -189,15 +148,23 @@ module Neo4j
|
|
189
148
|
end
|
190
149
|
|
191
150
|
def optional_match(base_query, path)
|
151
|
+
start_path = "#{escape("#{path_name(path)}_path")}=(#{identity})"
|
192
152
|
base_query.optional_match(
|
193
|
-
"
|
194
|
-
relationship_part(element.association, path_name(path[0..index]))
|
153
|
+
"#{start_path}#{path.each_with_index.map do |element, index|
|
154
|
+
relationship_part(element.association, path_name(path[0..index]), element.rel_length)
|
195
155
|
end.join}"
|
196
156
|
)
|
197
157
|
end
|
198
158
|
|
199
|
-
def relationship_part(association, path_name)
|
200
|
-
|
159
|
+
def relationship_part(association, path_name, rel_length)
|
160
|
+
if rel_length
|
161
|
+
rel_name = nil
|
162
|
+
length = {max: rel_length}
|
163
|
+
else
|
164
|
+
rel_name = escape("#{path_name}_rel")
|
165
|
+
length = nil
|
166
|
+
end
|
167
|
+
"#{association.arrow_cypher(rel_name, {}, false, false, length)}(#{escape(path_name)})"
|
201
168
|
end
|
202
169
|
|
203
170
|
def chain
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Neo4j
|
2
|
+
module ActiveNode
|
3
|
+
module Query
|
4
|
+
module QueryProxyEagerLoading
|
5
|
+
class AssociationTree < Hash
|
6
|
+
attr_accessor :model, :name, :association, :path, :rel_length
|
7
|
+
|
8
|
+
def initialize(model, name = nil, rel_length = nil)
|
9
|
+
super()
|
10
|
+
self.model = name ? target_class(model, name) : model
|
11
|
+
self.name = name
|
12
|
+
self.association = name ? model.associations[name] : nil
|
13
|
+
self.rel_length = rel_length
|
14
|
+
end
|
15
|
+
|
16
|
+
def clone
|
17
|
+
super.tap { |copy| copy.each { |key, value| copy[key] = value.clone } }
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_spec(spec)
|
21
|
+
fail_spec(spec) unless model
|
22
|
+
|
23
|
+
case spec
|
24
|
+
when nil
|
25
|
+
nil
|
26
|
+
when Array
|
27
|
+
spec.each(&method(:add_spec))
|
28
|
+
when Hash
|
29
|
+
process_hash(spec)
|
30
|
+
when String
|
31
|
+
process_string(spec)
|
32
|
+
else
|
33
|
+
add_key(spec)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def fail_spec(spec)
|
38
|
+
fail "Cannot eager load \"past\" a polymorphic association. \
|
39
|
+
(Since the association can return multiple models, we don't how to handle the \"#{spec}\" association.)"
|
40
|
+
end
|
41
|
+
|
42
|
+
def paths(*prefix)
|
43
|
+
values.flat_map { |v| [[*prefix, v]] + v.paths(*prefix, v) }
|
44
|
+
end
|
45
|
+
|
46
|
+
def process_hash(spec)
|
47
|
+
spec.each { |key, value| add_nested(key, value) }
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_key(key, length = nil)
|
51
|
+
self[key] ||= self.class.new(model, key, length)
|
52
|
+
end
|
53
|
+
|
54
|
+
def add_nested(key, value, length = nil)
|
55
|
+
add_key(key, length).add_spec(value)
|
56
|
+
end
|
57
|
+
|
58
|
+
def process_string(str)
|
59
|
+
head, rest = str.split('.', 2)
|
60
|
+
k, length = head.split('*', -2)
|
61
|
+
add_nested(k.to_sym, rest, length)
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def target_class(model, key)
|
67
|
+
association = model.associations[key]
|
68
|
+
fail "Invalid association: #{[*path, key].join('.')}" unless association
|
69
|
+
model.associations[key].target_class
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -7,5 +7,15 @@ module Neo4j::ActiveNode
|
|
7
7
|
fail "Can't access relationship on a non persisted node" unless _persisted_obj
|
8
8
|
_persisted_obj
|
9
9
|
end
|
10
|
+
|
11
|
+
def delete_reverse_relationship(association)
|
12
|
+
reverse_assoc = reverse_association(association)
|
13
|
+
self.send("#{reverse_assoc.name}=", nil) if reverse_assoc && reverse_assoc.type == :has_one
|
14
|
+
end
|
15
|
+
|
16
|
+
def reverse_association(association)
|
17
|
+
reverse_assoc = self.class.associations.find { |_key, assoc| association.inverse_of?(assoc) }
|
18
|
+
reverse_assoc && reverse_assoc.last
|
19
|
+
end
|
10
20
|
end
|
11
21
|
end
|
@@ -7,13 +7,12 @@ module Neo4j
|
|
7
7
|
def open_neo4j_session(type, url_or_path, wait_for_connection = false, options = {})
|
8
8
|
enable_unlimited_strength_crypto! if java_platform? && session_type_is_embedded?(type)
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
Neo4j::Core::CypherSession.new(adaptor)
|
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
|
17
16
|
end
|
18
17
|
|
19
18
|
def adaptor_class(type, options)
|
@@ -42,23 +41,17 @@ module Neo4j
|
|
42
41
|
RUBY_PLATFORM =~ /java/
|
43
42
|
end
|
44
43
|
|
45
|
-
def
|
46
|
-
value = nil
|
44
|
+
def wait_and_retry(session)
|
47
45
|
Timeout.timeout(60) do
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
rescue exception_class => e
|
55
|
-
raise e if !wait
|
56
|
-
|
57
|
-
# putc '.'
|
58
|
-
sleep(1)
|
59
|
-
end
|
46
|
+
begin
|
47
|
+
session.constraints
|
48
|
+
rescue Neo4j::Core::CypherSession::ConnectionFailedError
|
49
|
+
sleep(1)
|
50
|
+
retry
|
60
51
|
end
|
61
52
|
end
|
53
|
+
rescue Timeout::Error
|
54
|
+
raise Timeout::Error, 'Timeout while waiting for connection to neo4j database'
|
62
55
|
end
|
63
56
|
|
64
57
|
private
|
data/lib/neo4j/version.rb
CHANGED
metadata
CHANGED
@@ -1,234 +1,220 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Ronge, Brian Underwood, Chris Grigg
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - ">="
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '4.0'
|
19
|
-
name: activemodel
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
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: activesupport
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '4.0'
|
33
|
-
name: activesupport
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '4.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: i18n
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
45
|
- - "!="
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: 1.3.0
|
47
|
-
name: i18n
|
48
|
-
prerelease: false
|
49
48
|
type: :runtime
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "!="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.3.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '2.0'
|
61
|
-
name: neo4j-community
|
62
|
-
prerelease: false
|
63
|
-
type: :runtime
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '2.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
56
|
+
name: neo4j-core
|
70
57
|
requirement: !ruby/object:Gem::Requirement
|
71
58
|
requirements:
|
72
59
|
- - ">="
|
73
60
|
- !ruby/object:Gem::Version
|
74
61
|
version: 9.0.0
|
75
|
-
name: neo4j-core
|
76
|
-
prerelease: false
|
77
62
|
type: :runtime
|
63
|
+
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: 9.0.0
|
83
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: orm_adapter
|
84
71
|
requirement: !ruby/object:Gem::Requirement
|
85
72
|
requirements:
|
86
73
|
- - "~>"
|
87
74
|
- !ruby/object:Gem::Version
|
88
75
|
version: 0.5.0
|
89
|
-
name: orm_adapter
|
90
|
-
prerelease: false
|
91
76
|
type: :runtime
|
77
|
+
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: 0.5.0
|
97
83
|
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard
|
98
85
|
requirement: !ruby/object:Gem::Requirement
|
99
86
|
requirements:
|
100
87
|
- - ">="
|
101
88
|
- !ruby/object:Gem::Version
|
102
89
|
version: '0'
|
103
|
-
name: guard
|
104
|
-
prerelease: false
|
105
90
|
type: :development
|
91
|
+
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - ">="
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard-rspec
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
100
|
requirements:
|
114
101
|
- - ">="
|
115
102
|
- !ruby/object:Gem::Version
|
116
103
|
version: '0'
|
117
|
-
name: guard-rspec
|
118
|
-
prerelease: false
|
119
104
|
type: :development
|
105
|
+
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rubocop
|
126
113
|
requirement: !ruby/object:Gem::Requirement
|
127
114
|
requirements:
|
128
115
|
- - ">="
|
129
116
|
- !ruby/object:Gem::Version
|
130
117
|
version: '0'
|
131
|
-
name: guard-rubocop
|
132
|
-
prerelease: false
|
133
118
|
type: :development
|
119
|
+
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
122
|
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
126
|
+
name: neo4j-rake_tasks
|
140
127
|
requirement: !ruby/object:Gem::Requirement
|
141
128
|
requirements:
|
142
129
|
- - ">="
|
143
130
|
- !ruby/object:Gem::Version
|
144
131
|
version: 0.3.0
|
145
|
-
name: neo4j-rake_tasks
|
146
|
-
prerelease: false
|
147
132
|
type: :development
|
133
|
+
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
136
|
- - ">="
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: 0.3.0
|
153
139
|
- !ruby/object:Gem::Dependency
|
140
|
+
name: os
|
154
141
|
requirement: !ruby/object:Gem::Requirement
|
155
142
|
requirements:
|
156
143
|
- - ">="
|
157
144
|
- !ruby/object:Gem::Version
|
158
145
|
version: '0'
|
159
|
-
name: os
|
160
|
-
prerelease: false
|
161
146
|
type: :development
|
147
|
+
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
150
|
- - ">="
|
165
151
|
- !ruby/object:Gem::Version
|
166
152
|
version: '0'
|
167
153
|
- !ruby/object:Gem::Dependency
|
154
|
+
name: pry
|
168
155
|
requirement: !ruby/object:Gem::Requirement
|
169
156
|
requirements:
|
170
157
|
- - ">="
|
171
158
|
- !ruby/object:Gem::Version
|
172
159
|
version: '0'
|
173
|
-
name: pry
|
174
|
-
prerelease: false
|
175
160
|
type: :development
|
161
|
+
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
164
|
- - ">="
|
179
165
|
- !ruby/object:Gem::Version
|
180
166
|
version: '0'
|
181
167
|
- !ruby/object:Gem::Dependency
|
168
|
+
name: railties
|
182
169
|
requirement: !ruby/object:Gem::Requirement
|
183
170
|
requirements:
|
184
171
|
- - ">="
|
185
172
|
- !ruby/object:Gem::Version
|
186
173
|
version: '4.0'
|
187
|
-
name: railties
|
188
|
-
prerelease: false
|
189
174
|
type: :development
|
175
|
+
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - ">="
|
193
179
|
- !ruby/object:Gem::Version
|
194
180
|
version: '4.0'
|
195
181
|
- !ruby/object:Gem::Dependency
|
182
|
+
name: rake
|
196
183
|
requirement: !ruby/object:Gem::Requirement
|
197
184
|
requirements:
|
198
185
|
- - ">="
|
199
186
|
- !ruby/object:Gem::Version
|
200
187
|
version: '0'
|
201
|
-
name: rake
|
202
|
-
prerelease: false
|
203
188
|
type: :development
|
189
|
+
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - ">="
|
207
193
|
- !ruby/object:Gem::Version
|
208
194
|
version: '0'
|
209
195
|
- !ruby/object:Gem::Dependency
|
196
|
+
name: rubocop
|
210
197
|
requirement: !ruby/object:Gem::Requirement
|
211
198
|
requirements:
|
212
199
|
- - "~>"
|
213
200
|
- !ruby/object:Gem::Version
|
214
201
|
version: 0.56.0
|
215
|
-
name: rubocop
|
216
|
-
prerelease: false
|
217
202
|
type: :development
|
203
|
+
prerelease: false
|
218
204
|
version_requirements: !ruby/object:Gem::Requirement
|
219
205
|
requirements:
|
220
206
|
- - "~>"
|
221
207
|
- !ruby/object:Gem::Version
|
222
208
|
version: 0.56.0
|
223
209
|
- !ruby/object:Gem::Dependency
|
210
|
+
name: yard
|
224
211
|
requirement: !ruby/object:Gem::Requirement
|
225
212
|
requirements:
|
226
213
|
- - ">="
|
227
214
|
- !ruby/object:Gem::Version
|
228
215
|
version: '0'
|
229
|
-
name: yard
|
230
|
-
prerelease: false
|
231
216
|
type: :development
|
217
|
+
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
219
|
requirements:
|
234
220
|
- - ">="
|
@@ -281,6 +267,7 @@ files:
|
|
281
267
|
- lib/neo4j/active_node/query.rb
|
282
268
|
- lib/neo4j/active_node/query/query_proxy.rb
|
283
269
|
- lib/neo4j/active_node/query/query_proxy_eager_loading.rb
|
270
|
+
- lib/neo4j/active_node/query/query_proxy_eager_loading/association_tree.rb
|
284
271
|
- lib/neo4j/active_node/query/query_proxy_enumerable.rb
|
285
272
|
- lib/neo4j/active_node/query/query_proxy_find_in_batches.rb
|
286
273
|
- lib/neo4j/active_node/query/query_proxy_link.rb
|
@@ -372,7 +359,7 @@ metadata:
|
|
372
359
|
changelog_uri: https://github.com/neo4jrb/neo4j/blob/master/CHANGELOG.md
|
373
360
|
source_code_uri: https://github.com/neo4jrb/neo4j/
|
374
361
|
bug_tracker_uri: https://github.com/neo4jrb/neo4j/issues
|
375
|
-
post_install_message:
|
362
|
+
post_install_message:
|
376
363
|
rdoc_options:
|
377
364
|
- "--quiet"
|
378
365
|
- "--title"
|
@@ -387,7 +374,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
387
374
|
requirements:
|
388
375
|
- - ">="
|
389
376
|
- !ruby/object:Gem::Version
|
390
|
-
version: 1.9
|
377
|
+
version: 2.1.9
|
391
378
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
392
379
|
requirements:
|
393
380
|
- - ">="
|
@@ -395,8 +382,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
395
382
|
version: '0'
|
396
383
|
requirements: []
|
397
384
|
rubyforge_project: neo4j
|
398
|
-
rubygems_version: 2.7.
|
399
|
-
signing_key:
|
385
|
+
rubygems_version: 2.7.8
|
386
|
+
signing_key:
|
400
387
|
specification_version: 4
|
401
388
|
summary: A graph database for Ruby
|
402
389
|
test_files: []
|