neo4j 5.2.2 → 5.2.3
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 +8 -4
- data/lib/neo4j.rb +1 -0
- data/lib/neo4j/active_node/has_n.rb +4 -0
- data/lib/neo4j/active_node/labels.rb +1 -8
- data/lib/neo4j/active_node/labels/reloading.rb +21 -0
- data/lib/neo4j/active_node/query/query_proxy_methods.rb +1 -0
- data/lib/neo4j/active_node/unpersisted.rb +4 -2
- data/lib/neo4j/railtie.rb +6 -0
- data/lib/neo4j/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6857fc3946f80bb498ef99f5e77ad04aae7780d2
|
4
|
+
data.tar.gz: 4544f2e9fe135d5d7c53d1122c13d14250d1ff32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4aae1286a0007a42f95f55f0828cfc1e3ca9981510689df6d86f352c1aefea12a894c056631383367545be5aaf8e39e1c27d8dc2dc40e065d9020472283492e3
|
7
|
+
data.tar.gz: b495f1ae8518b65121f2c99a8bd2725a50ca7ea0fc60e416a84ef464b579ab9dce979aca5273f6fb758d1897d04ffeb0fbb211cacdba82f2f3f11b7d59ffce35
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,14 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased][unreleased]
|
7
7
|
|
8
|
+
## [5.2.3] - 09-07-2015
|
9
|
+
|
10
|
+
Added bugfixes from 5.1.4 and 5.1.5 that were missed in earlier 5.2.x releases:
|
11
|
+
- `AssociationProxy` now responds to `serializable_hash` so that `include` can be used in `render json` in Rails controllers
|
12
|
+
- Fixed errors when trying to call `#{association}_ids=` on an unpersisted node with UUIDs or an array thereof.
|
13
|
+
- Removed extra Cypher query to replace relationships when working with unpersisted nodes and association=.
|
14
|
+
- Bug related to Rails reloading an app and returning nodes without first reinitializing models, resulting in CypherNodes.
|
15
|
+
|
8
16
|
## [5.2.2] - 09-06-2015
|
9
17
|
|
10
18
|
### Fixed
|
@@ -22,10 +30,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
22
30
|
- Added `record_timestamps` configuration do default all `ActiveNode` and `ActiveRel` models to have `created_at` and `updated_at` timestamps (from #939, thanks @rebecca-eakins)
|
23
31
|
- Added `timestamp_type` configuration to specify how timestamps should be stored (from #939, thanks @rebecca-eakins)
|
24
32
|
|
25
|
-
### Changed
|
26
|
-
- Methods related to basic node and rel persistence (`save`, `create_model`, `_create_node`, others) were refactored to make the processes simpler, clearer, and slightly faster.
|
27
|
-
- Unit test directory structure was rearranged to mirror the `lib` directory.
|
28
|
-
|
29
33
|
## [5.1.3] - 08-23-2015
|
30
34
|
|
31
35
|
### Fixed
|
data/lib/neo4j.rb
CHANGED
@@ -60,6 +60,7 @@ require 'neo4j/active_node/query/query_proxy_enumerable'
|
|
60
60
|
require 'neo4j/active_node/query/query_proxy_find_in_batches'
|
61
61
|
require 'neo4j/active_node/query/query_proxy_eager_loading'
|
62
62
|
require 'neo4j/active_node/query/query_proxy_link'
|
63
|
+
require 'neo4j/active_node/labels/reloading'
|
63
64
|
require 'neo4j/active_node/labels'
|
64
65
|
require 'neo4j/active_node/id_property/accessor'
|
65
66
|
require 'neo4j/active_node/id_property'
|
@@ -3,6 +3,7 @@ module Neo4j
|
|
3
3
|
# Provides a mapping between neo4j labels and Ruby classes
|
4
4
|
module Labels
|
5
5
|
extend ActiveSupport::Concern
|
6
|
+
include Neo4j::ActiveNode::Labels::Reloading
|
6
7
|
|
7
8
|
WRAPPED_CLASSES = []
|
8
9
|
MODELS_FOR_LABELS_CACHE = {}
|
@@ -75,17 +76,9 @@ module Neo4j
|
|
75
76
|
WRAPPED_CLASSES.clear
|
76
77
|
end
|
77
78
|
|
78
|
-
protected
|
79
|
-
|
80
79
|
module ClassMethods
|
81
80
|
include Neo4j::ActiveNode::QueryMethods
|
82
81
|
|
83
|
-
def before_remove_const
|
84
|
-
associations.each_value(&:queue_model_refresh!)
|
85
|
-
MODELS_FOR_LABELS_CACHE.clear
|
86
|
-
WRAPPED_CLASSES.clear
|
87
|
-
end
|
88
|
-
|
89
82
|
# Returns the object with the specified neo4j id.
|
90
83
|
# @param [String,Integer] id of node to find
|
91
84
|
def find(id)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Neo4j::ActiveNode::Labels
|
2
|
+
module Reloading
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
MODELS_TO_RELOAD = []
|
6
|
+
|
7
|
+
def self.reload_models!
|
8
|
+
MODELS_TO_RELOAD.each(&:constantize)
|
9
|
+
MODELS_TO_RELOAD.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
def before_remove_const
|
14
|
+
associations.each_value(&:queue_model_refresh!)
|
15
|
+
MODELS_FOR_LABELS_CACHE.clear
|
16
|
+
WRAPPED_CLASSES.each { |c| MODELS_TO_RELOAD << c.name }
|
17
|
+
WRAPPED_CLASSES.clear
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -164,6 +164,7 @@ module Neo4j
|
|
164
164
|
|
165
165
|
# Deletes the relationships between all nodes for the last step in the QueryProxy chain. Executed in the database, callbacks will not be run.
|
166
166
|
def delete_all_rels
|
167
|
+
return unless start_object && start_object._persisted_obj
|
167
168
|
self.query.delete(rel_var).exec
|
168
169
|
end
|
169
170
|
|
@@ -40,8 +40,10 @@ module Neo4j
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def save_and_associate_node(association_name, node, operator)
|
43
|
-
|
44
|
-
|
43
|
+
if node.respond_to?(:changed?)
|
44
|
+
node.save if node.changed? || !node.persisted?
|
45
|
+
fail "Unable to defer node persistence, could not save #{node.inspect}" unless node.persisted?
|
46
|
+
end
|
45
47
|
operator == :<< ? send(association_name).send(operator, node) : send(:"#{association_name}=", node)
|
46
48
|
end
|
47
49
|
end
|
data/lib/neo4j/railtie.rb
CHANGED
@@ -5,6 +5,12 @@ module Neo4j
|
|
5
5
|
class Railtie < ::Rails::Railtie
|
6
6
|
config.neo4j = ActiveSupport::OrderedOptions.new
|
7
7
|
|
8
|
+
if const_defined?(:ActionDispatch)
|
9
|
+
ActionDispatch::Reloader.to_prepare do
|
10
|
+
Neo4j::ActiveNode::Labels::Reloading.reload_models!
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
8
14
|
# Add ActiveModel translations to the I18n load_path
|
9
15
|
initializer 'i18n' do
|
10
16
|
config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), '..', '..', '..', 'config', 'locales', '*.{rb,yml}')]
|
data/lib/neo4j/version.rb
CHANGED
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: 5.2.
|
4
|
+
version: 5.2.3
|
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: 2015-09-
|
11
|
+
date: 2015-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orm_adapter
|
@@ -236,6 +236,7 @@ files:
|
|
236
236
|
- lib/neo4j/active_node/id_property/accessor.rb
|
237
237
|
- lib/neo4j/active_node/initialize.rb
|
238
238
|
- lib/neo4j/active_node/labels.rb
|
239
|
+
- lib/neo4j/active_node/labels/reloading.rb
|
239
240
|
- lib/neo4j/active_node/node_wrapper.rb
|
240
241
|
- lib/neo4j/active_node/orm_adapter.rb
|
241
242
|
- lib/neo4j/active_node/persistence.rb
|
@@ -322,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
322
323
|
version: '0'
|
323
324
|
requirements: []
|
324
325
|
rubyforge_project: neo4j
|
325
|
-
rubygems_version: 2.4.
|
326
|
+
rubygems_version: 2.4.6
|
326
327
|
signing_key:
|
327
328
|
specification_version: 4
|
328
329
|
summary: A graph database for Ruby
|