neo4j 9.4.0 → 9.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ddd749f4da3296fd19bb4c39c1981e3b612d58715fcfbc7bf4e7267811284312
4
- data.tar.gz: a39833454052a0fee01b2fbcc781d4334521a1f32415e410e711daa1867eeff0
3
+ metadata.gz: 1d29f60a9c7d8ae6a2415d1ff37d4bad444a21853dbce515c95824d2a83540d0
4
+ data.tar.gz: c1bb5780fa1bde00cbbd3fbff425190012a2de19a0a0b22f836f5e6fc10ffb3b
5
5
  SHA512:
6
- metadata.gz: bb6c4d92ca9cf8544e33da06b29568e44f24ba8f87a5a861256a1cdb369acf536467ccbaafcd102b7ad04457c9da69149c0e0cec92c290b85869ef55063318ff
7
- data.tar.gz: 3ee2eaf941aa6e406d7a764c843dbd2b51502452d2682512bb6c512077003c9a9f5021b905332fc7a8bb1480fa80fce49e82b055f60f058345474d9f9d67ce40
6
+ metadata.gz: e67d937270cfb963b8e3ee4326c0946bbff1c4d21290e54def9eeeec10c5bd258df93d8f05f3241f94c56401a136fc4588d79e198a5d0bfdecf170bb1e3f0683
7
+ data.tar.gz: 95756152b26bfd067535b680040827872de54fc89e87f1f6f38053b1fa7df9671bb4e20aceb9d4de07695b0573e946765f2568da0029fff2ba71715f11ac4fb9
@@ -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
- ### Current Maintainers
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.
@@ -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'
@@ -102,7 +102,7 @@ module Neo4j::ActiveNode
102
102
  end
103
103
 
104
104
  def add_to_cache(object, rel = nil)
105
- @cached_rels << rel if rel
105
+ (@cached_rels ||= []) << rel if rel
106
106
  (@cached_result ||= []) << object
107
107
  end
108
108
 
@@ -170,7 +170,7 @@ module Neo4j
170
170
  end
171
171
 
172
172
  def origin_association
173
- target_class.associations[@origin]
173
+ target_class && target_class.associations[@origin]
174
174
  end
175
175
 
176
176
  def origin_type
@@ -207,7 +207,11 @@ module Neo4j
207
207
 
208
208
  Neo4j::ActiveBase.run_transaction do
209
209
  other_nodes.each do |other_node|
210
- other_node.save unless other_node.neo_id
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
- "[collect(#{escape("#{path_name(path)}_rel")}), collect(#{escape path_name(path)})] AS #{escape("#{path_name(path)}_collection")}",
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
- "(#{identity})#{path.each_with_index.map do |element, index|
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
- "#{association.arrow_cypher(escape("#{path_name}_rel"))}(#{escape(path_name)})"
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
- adaptor = wait_for_value(wait_for_connection, Neo4j::Core::CypherSession::ConnectionFailedError) do
11
- verbose_query_logs = Neo4j::Config.fetch(:verbose_query_logs, false)
12
- cypher_session_adaptor(type, url_or_path, options.merge(wrap_level: :proc,
13
- verbose_query_logs: verbose_query_logs))
14
- end
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 wait_for_value(wait, exception_class)
46
- value = nil
44
+ def wait_and_retry(session)
47
45
  Timeout.timeout(60) do
48
- until value
49
- begin
50
- if value = yield
51
- # puts
52
- return value
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
@@ -1,3 +1,3 @@
1
1
  module Neo4j
2
- VERSION = '9.4.0'
2
+ VERSION = '9.5.0'
3
3
  end
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.0
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: 2018-12-20 00:00:00.000000000 Z
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
- requirement: !ruby/object:Gem::Requirement
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.3
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.6
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: []