neo4j 6.0.0.alpha.8 → 6.0.0.alpha.9
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 +17 -1
- data/Gemfile +1 -1
- data/README.md +9 -6
- data/lib/neo4j.rb +1 -0
- data/lib/neo4j/active_node/labels.rb +21 -12
- data/lib/neo4j/active_rel/types.rb +5 -5
- data/lib/neo4j/shared/callbacks.rb +7 -2
- data/lib/neo4j/shared/persistence.rb +5 -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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e9a0580979b896fd0ff1da7bdb6e42e8dc5a3dd
|
4
|
+
data.tar.gz: 9709fe48514ff2aad702b9e8606ca25f9afb0e64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96781c2cb44acf832b0eb205ffa25dd7a7fa86ea058d45ef647be8dc02bb5a8d0c2ce242a5d9ff75a4143c86f59a55ae7d4c4bd279c00a752c109eb3cef7057e
|
7
|
+
data.tar.gz: 46ebc2cf7bf7a7b0883eb36c46ed327762bba6e77a3d17a6dbb74e7d80b255225ae2ac64b149f8d662bf35263643364ee2d386cc390611cb56dbe9956c796d01
|
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,12 @@ 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
|
-
## [
|
6
|
+
## [6.0.0.alpha.9] - 10-27-2015
|
7
|
+
|
8
|
+
### Fixed
|
9
|
+
- `uninitialized constant Neo4j::Core::CypherSession` error
|
10
|
+
|
11
|
+
## [6.0.0.alpha.8] - 10-19-2015
|
7
12
|
|
8
13
|
### Added
|
9
14
|
|
@@ -74,6 +79,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
74
79
|
- Certain actions that were intended as once-in-the-app's-lifetime events, notably schema operations, will only occur immediately upon the first session's establishment.
|
75
80
|
- Context now set for Model.all QueryProxy so that logs can reflect that it wasn't just a raw Cypher query
|
76
81
|
|
82
|
+
## [5.2.13] - 10-26-2015
|
83
|
+
|
84
|
+
### Fixed
|
85
|
+
- Fixed `#after_initialize` and `#after_find` callbacks.
|
86
|
+
- The `#touch` method should to raise errors when unsuccessful and avoid `#attributes` for performance.
|
87
|
+
|
88
|
+
## [5.2.12] - 10-25-2015
|
89
|
+
|
90
|
+
### Fixed
|
91
|
+
- Fix the `#touch` method for `ActiveNode` and `ActiveRel`
|
92
|
+
|
77
93
|
## [5.2.11] - 10-18-2015
|
78
94
|
|
79
95
|
### Fixed
|
data/Gemfile
CHANGED
@@ -2,7 +2,7 @@ source 'http://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'neo4j-core', github: 'neo4jrb/neo4j-core', branch: 'master'
|
5
|
+
# gem 'neo4j-core', github: 'neo4jrb/neo4j-core', branch: 'master'
|
6
6
|
# gem 'neo4j-core', path: '../neo4j-core'
|
7
7
|
|
8
8
|
# gem 'active_attr', github: 'neo4jrb/active_attr', branch: 'performance'
|
data/README.md
CHANGED
@@ -48,12 +48,15 @@ Neo4j.rb v4.1.0 was released in January of 2015. Its changes are outlined [here]
|
|
48
48
|
|
49
49
|
## Neo4j version support
|
50
50
|
|
51
|
-
| **Neo4j Version** | v2.x | v3.x
|
52
|
-
|
53
|
-
| 1.9.x | Yes | No
|
54
|
-
| 2.0.x | No | Yes
|
55
|
-
| 2.1.x | No | Yes
|
56
|
-
| 2.2.x | No | No
|
51
|
+
| **Neo4j Version** | v2.x | v3.x | >= v4.x |
|
52
|
+
|-------------------|------|-------|---------|
|
53
|
+
| 1.9.x | Yes | No | No |
|
54
|
+
| 2.0.x | No | Yes | No |
|
55
|
+
| 2.1.x | No | Yes | Yes * |
|
56
|
+
| 2.2.x | No | No | Yes |
|
57
|
+
| 2.3.x | No | No | Yes |
|
58
|
+
|
59
|
+
`*` Neo4j.rb >= 4.x doesn't support Neo4j versions before 2.1.5. To use 2.1.x you should upgrade to a version >= 2.1.5
|
57
60
|
|
58
61
|
## Neo4j feature support
|
59
62
|
|
data/lib/neo4j.rb
CHANGED
@@ -47,19 +47,19 @@ module Neo4j
|
|
47
47
|
@_persisted_obj.remove_label(*label)
|
48
48
|
end
|
49
49
|
|
50
|
-
def self.
|
51
|
-
|
50
|
+
def self._wrapped_classes
|
51
|
+
WRAPPED_CLASSES
|
52
52
|
end
|
53
53
|
|
54
|
-
def self.
|
55
|
-
|
54
|
+
def self.add_wrapped_class(model)
|
55
|
+
_wrapped_classes << model
|
56
56
|
end
|
57
57
|
|
58
|
+
# Finds an appropriate matching model given a set of labels
|
59
|
+
# which are assigned to a node
|
58
60
|
def self.model_for_labels(labels)
|
59
|
-
MODELS_FOR_LABELS_CACHE[labels]
|
60
|
-
end
|
61
|
+
return MODELS_FOR_LABELS_CACHE[labels] if MODELS_FOR_LABELS_CACHE[labels]
|
61
62
|
|
62
|
-
def self.model_cache(labels)
|
63
63
|
models = WRAPPED_CLASSES.select do |model|
|
64
64
|
(model.mapped_label_names - labels).size == 0
|
65
65
|
end
|
@@ -69,12 +69,10 @@ module Neo4j
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
def self.clear_model_for_label_cache
|
73
|
-
MODELS_FOR_LABELS_CACHE.clear
|
74
|
-
end
|
75
|
-
|
76
72
|
def self.clear_wrapped_models
|
77
73
|
WRAPPED_CLASSES.clear
|
74
|
+
MODELS_FOR_LABELS_CACHE.clear
|
75
|
+
Neo4j::Node::Wrapper::CONSTANTS_FOR_LABELS_CACHE.clear
|
78
76
|
end
|
79
77
|
|
80
78
|
module ClassMethods
|
@@ -91,7 +89,7 @@ module Neo4j
|
|
91
89
|
find_by_id(map_id.call(id))
|
92
90
|
end
|
93
91
|
fail Neo4j::RecordNotFound if result.blank?
|
94
|
-
result
|
92
|
+
result.tap { |r| find_callbacks!(r) }
|
95
93
|
end
|
96
94
|
|
97
95
|
# Finds the first record matching the specified conditions. There is no implied ordering so if order matters, you should specify it yourself.
|
@@ -164,6 +162,17 @@ module Neo4j
|
|
164
162
|
|
165
163
|
private
|
166
164
|
|
165
|
+
def find_callbacks!(result)
|
166
|
+
case result
|
167
|
+
when Neo4j::ActiveNode
|
168
|
+
result.run_callbacks(:find)
|
169
|
+
when Array
|
170
|
+
result.each { |r| find_callbacks!(r) }
|
171
|
+
else
|
172
|
+
result
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
167
176
|
def label_for_model
|
168
177
|
(self.name.nil? ? object_id.to_s.to_sym : decorated_label_name)
|
169
178
|
end
|
@@ -59,13 +59,13 @@ module Neo4j
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
def
|
63
|
-
|
64
|
-
_wrapped_classes[type.to_sym] = self.name
|
62
|
+
def _wrapped_classes
|
63
|
+
WRAPPED_CLASSES
|
65
64
|
end
|
66
65
|
|
67
|
-
def
|
68
|
-
|
66
|
+
def add_wrapped_class(type)
|
67
|
+
# WRAPPED_CLASSES[type.to_sym.downcase] = self.name
|
68
|
+
_wrapped_classes[type.to_sym] = self.name
|
69
69
|
end
|
70
70
|
|
71
71
|
def rel_type?
|
@@ -9,8 +9,13 @@ module Neo4j
|
|
9
9
|
|
10
10
|
included do
|
11
11
|
include ActiveModel::Validations::Callbacks
|
12
|
+
# after_find is triggered by the `find` method defined in lib/neo4j/active_node/id_property.rb
|
12
13
|
define_model_callbacks :initialize, :find, only: :after
|
13
|
-
define_model_callbacks :save, :create, :update, :destroy
|
14
|
+
define_model_callbacks :save, :create, :update, :destroy, :touch
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(args = nil)
|
18
|
+
run_callbacks(:initialize) { super }
|
14
19
|
end
|
15
20
|
|
16
21
|
def destroy #:nodoc:
|
@@ -25,7 +30,7 @@ module Neo4j
|
|
25
30
|
tx.close if tx
|
26
31
|
end
|
27
32
|
|
28
|
-
def touch
|
33
|
+
def touch #:nodoc:
|
29
34
|
run_callbacks(:touch) { super }
|
30
35
|
end
|
31
36
|
|
@@ -82,6 +82,11 @@ module Neo4j::Shared
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
def touch
|
86
|
+
fail 'Cannot touch on a new record object' unless persisted?
|
87
|
+
update_attribute!(:updated_at, Time.now) if respond_to?(:updated_at=)
|
88
|
+
end
|
89
|
+
|
85
90
|
# Returns +true+ if the record is persisted, i.e. it's not a new record and it was not destroyed
|
86
91
|
def persisted?
|
87
92
|
!new_record? && !destroyed?
|
data/lib/neo4j/version.rb
CHANGED
data/neo4j.gemspec
CHANGED
@@ -30,7 +30,7 @@ A Neo4j OGM (Object-Graph-Mapper) for use in Ruby on Rails and Rack frameworks h
|
|
30
30
|
s.add_dependency('activemodel', '~> 4')
|
31
31
|
s.add_dependency('activesupport', '~> 4')
|
32
32
|
s.add_dependency('active_attr', '~> 0.8')
|
33
|
-
s.add_dependency('neo4j-core', '~> 6.0.0.alpha.
|
33
|
+
s.add_dependency('neo4j-core', '~> 6.0.0.alpha.5')
|
34
34
|
s.add_dependency('neo4j-community', '~> 2.0') if RUBY_PLATFORM =~ /java/
|
35
35
|
s.add_development_dependency('railties', '~> 4')
|
36
36
|
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: 6.0.0.alpha.
|
4
|
+
version: 6.0.0.alpha.9
|
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-10-
|
11
|
+
date: 2015-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orm_adapter
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 6.0.0.alpha.
|
75
|
+
version: 6.0.0.alpha.5
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 6.0.0.alpha.
|
82
|
+
version: 6.0.0.alpha.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: railties
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|