neo4j 9.5.0 → 9.5.2
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/lib/neo4j/active_node/has_n.rb +17 -0
- data/lib/neo4j/active_node/rels.rb +4 -2
- data/lib/neo4j/active_rel/persistence.rb +6 -0
- data/lib/neo4j/version.rb +1 -1
- data/neo4j.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0364211168add80fe38bd3274825f155430521e2f6fb2e7228dad3e49aa057ac'
|
4
|
+
data.tar.gz: c12278922c2b982334a564b85bf572a6db59fbd9c8ed7b520823a267c6d82562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e063079054524c0843e720158e0af61fbb2b9c4121d38fac4fd1eea3648b95af196f63d8c3585491d4518535f398dde6b733a55baa2f0798dc8bf7927cc821b2
|
7
|
+
data.tar.gz: e7822e8abf2eb73bce2011bbbb016f60ace21bc93ddaf7e1db89f3e9a3c0614e49fbc89f14990bf2f9f63fddbe5a3a54371b7ef6769737eea85735d304c8d8c6
|
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.2] 2019-08-06
|
7
|
+
|
8
|
+
## Fixed
|
9
|
+
|
10
|
+
- Made neo4j_community gem a development dependency rather than a runtime dependency.
|
11
|
+
|
12
|
+
## [9.5.1] 2019-07-31
|
13
|
+
|
14
|
+
## Fixed
|
15
|
+
|
16
|
+
- Reverse has_one relationships with ActiveRel (thanks @amitsuryavanshi / #1560)
|
17
|
+
|
6
18
|
## [9.5.0] 2019-06-17
|
7
19
|
|
8
20
|
## Added
|
@@ -229,6 +229,23 @@ module Neo4j::ActiveNode
|
|
229
229
|
end
|
230
230
|
end
|
231
231
|
|
232
|
+
def delete_has_one_rel(active_rel, direction, target_class)
|
233
|
+
rel = active_rel_corresponding_rel(active_rel, direction, target_class)
|
234
|
+
delete_rel(rel.last) if rel && rel.last.type == :has_one
|
235
|
+
end
|
236
|
+
|
237
|
+
def delete_rel(rel)
|
238
|
+
send("#{rel.name}=", nil)
|
239
|
+
association_proxy_cache.clear
|
240
|
+
end
|
241
|
+
|
242
|
+
def active_rel_corresponding_rel(active_rel, direction, target_class)
|
243
|
+
self.class.associations.find do |_key, assoc|
|
244
|
+
assoc.relationship_class_name == active_rel.class.name ||
|
245
|
+
(assoc.relationship_type == active_rel.type.to_sym && assoc.target_class == target_class && assoc.direction == direction)
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
232
249
|
private
|
233
250
|
|
234
251
|
def fresh_association_proxy(name, options = {}, result_cache_proc = nil)
|
@@ -10,11 +10,13 @@ module Neo4j::ActiveNode
|
|
10
10
|
|
11
11
|
def delete_reverse_relationship(association)
|
12
12
|
reverse_assoc = reverse_association(association)
|
13
|
-
|
13
|
+
delete_rel(reverse_assoc) if reverse_assoc && reverse_assoc.type == :has_one
|
14
14
|
end
|
15
15
|
|
16
16
|
def reverse_association(association)
|
17
|
-
reverse_assoc = self.class.associations.find
|
17
|
+
reverse_assoc = self.class.associations.find do |_key, assoc|
|
18
|
+
association.inverse_of?(assoc) || assoc.inverse_of?(association)
|
19
|
+
end
|
18
20
|
reverse_assoc && reverse_assoc.last
|
19
21
|
end
|
20
22
|
end
|
@@ -45,12 +45,18 @@ module Neo4j::ActiveRel
|
|
45
45
|
|
46
46
|
def create_model
|
47
47
|
validate_node_classes!
|
48
|
+
delete_has_one_rel
|
48
49
|
rel = _create_rel
|
49
50
|
return self unless rel.respond_to?(:props)
|
50
51
|
init_on_load(rel, from_node, to_node, @rel_type)
|
51
52
|
true
|
52
53
|
end
|
53
54
|
|
55
|
+
def delete_has_one_rel
|
56
|
+
to_node.delete_has_one_rel(self, :in, from_node.class) if to_node.persisted?
|
57
|
+
from_node.delete_has_one_rel(self, :out, to_node.class) if from_node.persisted?
|
58
|
+
end
|
59
|
+
|
54
60
|
def query_as(var)
|
55
61
|
# This should query based on the nodes, not the rel neo_id, I think
|
56
62
|
# Also, picky point: Should the var be `n`?
|
data/lib/neo4j/version.rb
CHANGED
data/neo4j.gemspec
CHANGED
@@ -36,12 +36,12 @@ DESCRIPTION
|
|
36
36
|
s.add_dependency('activemodel', '>= 4.0')
|
37
37
|
s.add_dependency('activesupport', '>= 4.0')
|
38
38
|
s.add_dependency('i18n', '!= 1.3.0') # version 1.3.0 introduced a bug with `symbolize_key`
|
39
|
-
s.add_dependency('neo4j-community', '~> 2.0') if RUBY_PLATFORM =~ /java/
|
40
39
|
s.add_dependency('neo4j-core', '>= 9.0.0')
|
41
40
|
s.add_dependency('orm_adapter', '~> 0.5.0')
|
42
41
|
s.add_development_dependency('guard')
|
43
42
|
s.add_development_dependency('guard-rspec')
|
44
43
|
s.add_development_dependency('guard-rubocop')
|
44
|
+
s.add_development_dependency('neo4j-community', '~> 2.0') if RUBY_PLATFORM =~ /java/
|
45
45
|
s.add_development_dependency('neo4j-rake_tasks', '>= 0.3.0')
|
46
46
|
s.add_development_dependency('os')
|
47
47
|
s.add_development_dependency('pry')
|
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: 9.5.
|
4
|
+
version: 9.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Ronge, Brian Underwood, Chris Grigg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06
|
11
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -222,7 +222,7 @@ dependencies:
|
|
222
222
|
version: '0'
|
223
223
|
description: 'A Neo4j OGM (Object-Graph-Mapper) for Ruby heavily inspired by ActiveRecord.
|
224
224
|
|
225
|
-
|
225
|
+
'
|
226
226
|
email: andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com
|
227
227
|
executables:
|
228
228
|
- neo4j-jars
|
@@ -382,7 +382,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
382
382
|
version: '0'
|
383
383
|
requirements: []
|
384
384
|
rubyforge_project: neo4j
|
385
|
-
rubygems_version: 2.7.
|
385
|
+
rubygems_version: 2.7.6
|
386
386
|
signing_key:
|
387
387
|
specification_version: 4
|
388
388
|
summary: A graph database for Ruby
|