neo4j 8.0.0.rc.2 → 8.0.0.rc.3
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31ce9e5bebd684174609471aad17082021face51
|
4
|
+
data.tar.gz: d54842495024cd8df255e9b9a2abcb061ffa03e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdaf705709a16d870e42f31dcebd664c33bcd4810341975eaa2ea3d1d1e6ab4b0ec05cba3d9716d54dde200b3400a3a34312d9dc26067ad1d353b0e0e56a240d
|
7
|
+
data.tar.gz: 0bdee81e2b4e35f3abc1087d778ee01bffed4be0495dd0fda0f3fb23ca4090bdb2d908d514b904c2016002161d286d302fd3f1e83a28fae389cf789ef30d498f
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,15 @@ 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
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## [8.0.0.rc.3] 2016-10-12
|
9
|
+
|
10
|
+
# Added
|
11
|
+
|
12
|
+
- `distinct` method for QueryProxy (thanks @ProGM / see #1305)
|
13
|
+
- Added `update_node_property` / `update_node_properties` (aliased as `update_column` / `update_columns`)
|
14
|
+
|
6
15
|
## [8.0.0.rc.2] 2016-10-07
|
7
16
|
|
8
17
|
### Fixed
|
@@ -18,6 +27,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
18
27
|
### Added
|
19
28
|
|
20
29
|
- Add support for undeclared properties on specific models (see #1294 / thanks @klobuczek)
|
30
|
+
- Add `update_node_property` and `update_node_properties` methods, aliased as `update_column` and `update_columns`, to persist changes without triggering validations, callbacks, timestamps, etc,...
|
21
31
|
|
22
32
|
## [8.0.0.alpha.12] 2016-09-29
|
23
33
|
|
@@ -20,7 +20,7 @@ module Neo4j
|
|
20
20
|
return result_cache_for(node, rel) if result_cache?(node, rel)
|
21
21
|
|
22
22
|
pluck_vars = []
|
23
|
-
pluck_vars << identity if node
|
23
|
+
pluck_vars << ensure_distinct(identity) if node
|
24
24
|
pluck_vars << @rel_var if rel
|
25
25
|
|
26
26
|
result = pluck(*pluck_vars)
|
@@ -87,6 +87,12 @@ module Neo4j
|
|
87
87
|
|
88
88
|
self.query.pluck(*arg_list)
|
89
89
|
end
|
90
|
+
|
91
|
+
protected
|
92
|
+
|
93
|
+
def ensure_distinct(node, force = false)
|
94
|
+
@distinct || force ? "DISTINCT(#{node})" : node
|
95
|
+
end
|
90
96
|
end
|
91
97
|
end
|
92
98
|
end
|
@@ -41,12 +41,18 @@ module Neo4j
|
|
41
41
|
model ? model.id_property_name : nil
|
42
42
|
end
|
43
43
|
|
44
|
+
def distinct
|
45
|
+
new_link.tap do |e|
|
46
|
+
e.instance_variable_set(:@distinct, true)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
44
50
|
# @return [Integer] number of nodes of this class
|
45
51
|
def count(distinct = nil, target = nil)
|
46
52
|
return 0 if unpersisted_start_object?
|
47
53
|
fail(Neo4j::InvalidParameterError, ':count accepts `distinct` or nil as a parameter') unless distinct.nil? || distinct == :distinct
|
48
54
|
query_with_target(target) do |var|
|
49
|
-
q = distinct.nil?
|
55
|
+
q = ensure_distinct(var, !distinct.nil?)
|
50
56
|
limited_query = self.query.clause?(:limit) ? self.query.break.with(var) : self.query.reorder
|
51
57
|
limited_query.pluck("count(#{q}) AS #{var}").first
|
52
58
|
end
|
@@ -189,6 +189,25 @@ module Neo4j::Shared
|
|
189
189
|
end
|
190
190
|
alias update_attributes update
|
191
191
|
|
192
|
+
def update_db_property(field, value)
|
193
|
+
update_db_properties(field => value)
|
194
|
+
true
|
195
|
+
end
|
196
|
+
alias update_column update_db_property
|
197
|
+
|
198
|
+
def update_db_properties(hash)
|
199
|
+
fail ::Neo4j::Error, 'can not update on a new record object' unless persisted?
|
200
|
+
self.class.run_transaction do
|
201
|
+
db_values = props_for_db(hash)
|
202
|
+
neo4j_query(query_as(:n).set(n: db_values))
|
203
|
+
db_values.each_pair { |k, v| self.public_send(:"#{k}=", v) }
|
204
|
+
_persisted_obj.props.merge!(db_values)
|
205
|
+
db_values.each_key { |k| changed_attributes.delete(k) }
|
206
|
+
true
|
207
|
+
end
|
208
|
+
end
|
209
|
+
alias update_columns update_db_properties
|
210
|
+
|
192
211
|
# Same as {#update_attributes}, but raises an exception if saving fails.
|
193
212
|
def update!(attributes)
|
194
213
|
self.class.run_transaction do
|
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: 8.0.0.rc.
|
4
|
+
version: 8.0.0.rc.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: 2016-10-
|
11
|
+
date: 2016-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orm_adapter
|
@@ -372,3 +372,4 @@ signing_key:
|
|
372
372
|
specification_version: 4
|
373
373
|
summary: A graph database for Ruby
|
374
374
|
test_files: []
|
375
|
+
has_rdoc: true
|