neo4j 4.0.0.rc.3 → 4.0.0.rc.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +5 -0
- data/lib/neo4j/active_node/has_n.rb +1 -1
- data/lib/neo4j/active_node/has_n/association.rb +23 -2
- data/lib/neo4j/active_node/labels.rb +8 -2
- data/lib/neo4j/active_node/query/query_proxy.rb +4 -2
- data/lib/neo4j/version.rb +1 -1
- data/neo4j.gemspec +2 -2
- 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: d79cf5cc18db9fb5569ea5a2c096dcc5f29c7ead
|
4
|
+
data.tar.gz: 4e7b425de4468af56386de2c3f663498835b100c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbf9baeb9097961b6e60526ebc9619ee468f5000d64a22c5d0ec278127a50d016c8610ec4a5d5b80ebaebc6afd27b7566fb8dfdf11cf03df3120257e46eaf0d7
|
7
|
+
data.tar.gz: d47ad8ee3c67efd987867335a8a71a73ade28e3fe4e7ce72835d0aba76276d4b25fdb3bfd520a59a669f86b6ac73f07ad125b9f50980a847e9baf252925916c9
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 4.0.0.rc.4
|
2
|
+
* _classname property is disabled by default for ActiveRel! It had been disabled for ActiveNode, this just evens the score.
|
3
|
+
* Fixes a bug to create better `result` labels in Cypher.
|
4
|
+
* Made the `delete_all` and `destroy_all` ActiveNode class methods consistent with their ActiveRecord counterparts. `destroy_all` previously performed its deletes in Cypher but it should have been returning nodes to Ruby and calling `destroy`. `delete_all` didn't exist at all.
|
5
|
+
|
1
6
|
== 4.0.0.rc.3
|
2
7
|
Released minutes after rc.2 to catch one late addition!
|
3
8
|
* Adds serialization support for QueryProxy.
|
@@ -119,7 +119,7 @@ module HasN
|
|
119
119
|
|
120
120
|
instance_eval(%Q{
|
121
121
|
def #{name}(node = nil, rel = nil, proxy_obj = nil)
|
122
|
-
query_proxy = proxy_obj || Neo4j::ActiveNode::Query::QueryProxy.new(
|
122
|
+
query_proxy = proxy_obj || Neo4j::ActiveNode::Query::QueryProxy.new(::#{self.name}, nil, {
|
123
123
|
session: self.neo4j_session, query_proxy: nil, context: '#{self.name}' + '##{name}'
|
124
124
|
})
|
125
125
|
context = (query_proxy && query_proxy.context ? query_proxy.context : '#{self.name}') + '##{name}'
|
@@ -18,7 +18,17 @@ module Neo4j
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def target_class_option(options)
|
21
|
-
options[:model_class].nil?
|
21
|
+
if options[:model_class].nil?
|
22
|
+
if @target_class_name_from_name
|
23
|
+
"::#{@target_class_name_from_name}"
|
24
|
+
else
|
25
|
+
@target_class_name_from_name
|
26
|
+
end
|
27
|
+
elsif options[:model_class] == false
|
28
|
+
false
|
29
|
+
else
|
30
|
+
"::#{options[:model_class]}"
|
31
|
+
end
|
22
32
|
end
|
23
33
|
|
24
34
|
# Return cypher partial query string for the relationship part of a MATCH (arrow / relationship definition)
|
@@ -78,8 +88,19 @@ module Neo4j
|
|
78
88
|
@relationship_class_name ||= @relationship_class.respond_to?(:constantize) ? @relationship_class : @relationship_class.name
|
79
89
|
end
|
80
90
|
|
91
|
+
def relationship_clazz
|
92
|
+
@relationship_clazz ||= if @relationship_class.is_a?(String)
|
93
|
+
@relationship_class.constantize
|
94
|
+
elsif @relationship_class.is_a?(Symbol)
|
95
|
+
@relationship_class.to_s.constantize
|
96
|
+
else
|
97
|
+
@relationship_class
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
81
101
|
def inject_classname(properties)
|
82
|
-
properties
|
102
|
+
return properties unless @relationship_class
|
103
|
+
properties[Neo4j::Config.class_name_property] = relationship_class_name if relationship_clazz.cached_class?(true)
|
83
104
|
properties
|
84
105
|
end
|
85
106
|
|
@@ -95,12 +95,18 @@ module Neo4j
|
|
95
95
|
find_by(args) or raise RecordNotFound, "#{self.query_as(:n).where(n: a).limit(1).to_cypher} returned no results"
|
96
96
|
end
|
97
97
|
|
98
|
-
#
|
99
|
-
def
|
98
|
+
# Deletes all nodes and connected relationships from Cypher.
|
99
|
+
def delete_all
|
100
100
|
self.neo4j_session._query("MATCH (n:`#{mapped_label_name}`)-[r]-() DELETE n,r")
|
101
101
|
self.neo4j_session._query("MATCH (n:`#{mapped_label_name}`) DELETE n")
|
102
102
|
end
|
103
103
|
|
104
|
+
# Returns each node to Ruby and calls `destroy`. Be careful, as this can be a very slow operation if you have many nodes. It will generate at least
|
105
|
+
# one database query per node in the database, more if callbacks require them.
|
106
|
+
def destroy_all
|
107
|
+
self.all.each { |n| n.destroy }
|
108
|
+
end
|
109
|
+
|
104
110
|
# Creates a Neo4j index on given property
|
105
111
|
#
|
106
112
|
# This can also be done on the property directly, see Neo4j::ActiveNode::Property::ClassMethods#property.
|
@@ -279,8 +279,10 @@ module Neo4j
|
|
279
279
|
def _result_string
|
280
280
|
if self.association
|
281
281
|
"result_#{self.association.name}".to_sym
|
282
|
-
elsif self.model
|
283
|
-
"result_#{self.model.name
|
282
|
+
elsif self.model && self.model.name
|
283
|
+
label = "result_#{self.model.name}"
|
284
|
+
label.downcase!.tr!(':', '')
|
285
|
+
label.to_sym
|
284
286
|
else
|
285
287
|
:result
|
286
288
|
end
|
data/lib/neo4j/version.rb
CHANGED
data/neo4j.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.version = Neo4j::VERSION
|
10
10
|
s.required_ruby_version = ">= 1.9.1"
|
11
11
|
|
12
|
-
s.authors = "Andreas Ronge"
|
13
|
-
s.email = 'andreas.ronge@gmail.com'
|
12
|
+
s.authors = "Andreas Ronge, Brian Underwood, Chris Grigg"
|
13
|
+
s.email = 'andreas.ronge@gmail.com, brian@brian-underwood.codes, chris@subvertallmedia.com'
|
14
14
|
s.homepage = "https://github.com/neo4jrb/neo4j/"
|
15
15
|
s.rubyforge_project = 'neo4j'
|
16
16
|
s.summary = "A graph database for Ruby"
|
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: 4.0.0.rc.
|
4
|
+
version: 4.0.0.rc.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Andreas Ronge
|
7
|
+
- Andreas Ronge, Brian Underwood, Chris Grigg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orm_adapter
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
version: 3.1.0
|
97
97
|
description: |
|
98
98
|
A Neo4j OGM (Object-Graph-Mapper) for use in Ruby on Rails and Rack frameworks heavily inspired by ActiveRecord.
|
99
|
-
email: andreas.ronge@gmail.com
|
99
|
+
email: andreas.ronge@gmail.com, brian@brian-underwood.codes, chris@subvertallmedia.com
|
100
100
|
executables:
|
101
101
|
- neo4j-jars
|
102
102
|
extensions: []
|