neo4j-core 5.0.2 → 5.0.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/lib/neo4j-core/query_clauses.rb +30 -12
- data/lib/neo4j-core/version.rb +1 -1
- data/lib/neo4j-server/cypher_session.rb +1 -1
- metadata +2 -3
- data/lib/neo4j-core/graph_json.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2160daa8962ca2c3473801e1a9bd5aa69d49f3f
|
4
|
+
data.tar.gz: b2dd9812b8e775c8e827376dd753d6d3fe20aaf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6b5547d132c434f796e912cb14978bb33df054d3d8d203ac99a50b765984cb5a4003ebea17a0308e498a7fe38af9fa3d5a8200ace05cbd7e75fb68d36edd4ab
|
7
|
+
data.tar.gz: df6d567989bef93a58e05133de6e73fa6c419e8b46ca581aede542ac0b46889b45c765f59be171ff58787418289546ccf310133288c9ff584debe6422916daaa
|
@@ -148,13 +148,31 @@ module Neo4j
|
|
148
148
|
param.tr_s!('^a-zA-Z0-9', UNDERSCORE)
|
149
149
|
param.gsub!(/^_+|_+$/, '')
|
150
150
|
|
151
|
-
|
152
|
-
|
151
|
+
if value.is_a?(Range)
|
152
|
+
add_params("#{param}_range_min" => value.min, "#{param}_range_max" => value.max)
|
153
153
|
|
154
|
-
|
155
|
-
"#{key} = {#{param}}"
|
154
|
+
"#{key} IN RANGE({#{param}_range_min}, {#{param}_range_max})"
|
156
155
|
else
|
157
|
-
|
156
|
+
value = value.first if array_value?(value, is_set) && value.size == 1
|
157
|
+
operator = array_value?(value, is_set) ? 'IN' : '='
|
158
|
+
|
159
|
+
add_param(param, value)
|
160
|
+
|
161
|
+
"#{key} #{operator} {#{param}}"
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
def array_value?(value, is_set)
|
166
|
+
value.is_a?(Array) && !is_set
|
167
|
+
end
|
168
|
+
|
169
|
+
def add_param(key, value)
|
170
|
+
@params[key.freeze.to_sym] = value
|
171
|
+
end
|
172
|
+
|
173
|
+
def add_params(params)
|
174
|
+
params.each do |key, value|
|
175
|
+
add_param(key, value)
|
158
176
|
end
|
159
177
|
end
|
160
178
|
|
@@ -180,7 +198,7 @@ module Neo4j
|
|
180
198
|
"#{key}: #{value}"
|
181
199
|
else
|
182
200
|
param_key = "#{prefix}#{key}".gsub('::', '_')
|
183
|
-
|
201
|
+
add_param(param_key, value)
|
184
202
|
"#{key}: {#{param_key}}"
|
185
203
|
end
|
186
204
|
end.join(Clause::COMMA_SPACE)
|
@@ -220,7 +238,7 @@ module Neo4j
|
|
220
238
|
when Hash then hash_key_value_string(key, value, previous_keys)
|
221
239
|
when NilClass then "#{key} IS NULL"
|
222
240
|
when Regexp then regexp_key_value_string(key, value)
|
223
|
-
when Array then key_value_string(key, value, previous_keys)
|
241
|
+
when Array, Range then key_value_string(key, value, previous_keys)
|
224
242
|
else
|
225
243
|
key_value_string(key, value, previous_keys)
|
226
244
|
end
|
@@ -418,13 +436,13 @@ module Neo4j
|
|
418
436
|
|
419
437
|
def from_string(value)
|
420
438
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
421
|
-
|
439
|
+
add_param(clause_id, value.to_i)
|
422
440
|
"{#{clause_id}}"
|
423
441
|
end
|
424
442
|
|
425
443
|
def from_integer(value)
|
426
444
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
427
|
-
|
445
|
+
add_param(clause_id, value)
|
428
446
|
"{#{clause_id}}"
|
429
447
|
end
|
430
448
|
|
@@ -440,13 +458,13 @@ module Neo4j
|
|
440
458
|
|
441
459
|
def from_string(value)
|
442
460
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
443
|
-
|
461
|
+
add_param(clause_id, value.to_i)
|
444
462
|
"{#{clause_id}}"
|
445
463
|
end
|
446
464
|
|
447
465
|
def from_integer(value)
|
448
466
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
449
|
-
|
467
|
+
add_param(clause_id, value)
|
450
468
|
"{#{clause_id}}"
|
451
469
|
end
|
452
470
|
|
@@ -465,7 +483,7 @@ module Neo4j
|
|
465
483
|
when String, Symbol then "#{key}:`#{value}`"
|
466
484
|
when Hash
|
467
485
|
if @options[:set_props]
|
468
|
-
|
486
|
+
add_param("#{key}_set_props", value)
|
469
487
|
"#{key} = {#{key}_set_props}"
|
470
488
|
else
|
471
489
|
value.map { |k, v| key_value_string("#{key}.`#{k}`", v, ['setter'], true) }
|
data/lib/neo4j-core/version.rb
CHANGED
@@ -237,7 +237,7 @@ module Neo4j
|
|
237
237
|
clear, yellow, cyan = %W(\e[0m \e[33m \e[36m)
|
238
238
|
ActiveSupport::Notifications.subscribe('neo4j.cypher_query') do |_, start, finish, _id, payload|
|
239
239
|
ms = (finish - start) * 1000
|
240
|
-
params_string = (payload[:params].size > 0 ? "| #{payload[:params].inspect}" : EMPTY)
|
240
|
+
params_string = (payload[:params] && payload[:params].size > 0 ? "| #{payload[:params].inspect}" : EMPTY)
|
241
241
|
yield(" #{cyan}#{payload[:context]}#{clear} #{yellow}#{ms.round}ms#{clear} #{payload[:cypher]} #{params_string}")
|
242
242
|
end
|
243
243
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Ronge, Chris Grigg, Brian Underwood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -262,7 +262,6 @@ files:
|
|
262
262
|
- lib/neo4j-core.rb
|
263
263
|
- lib/neo4j-core/active_entity.rb
|
264
264
|
- lib/neo4j-core/cypher_translator.rb
|
265
|
-
- lib/neo4j-core/graph_json.rb
|
266
265
|
- lib/neo4j-core/hash_with_indifferent_access.rb
|
267
266
|
- lib/neo4j-core/helpers.rb
|
268
267
|
- lib/neo4j-core/label.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Neo4j
|
2
|
-
module Core
|
3
|
-
module GraphJSON
|
4
|
-
def self.to_graph_json(objects)
|
5
|
-
nodes = {}
|
6
|
-
edges = {}
|
7
|
-
|
8
|
-
objects.each do |object|
|
9
|
-
case object
|
10
|
-
when Neo4j::ActiveNode, Neo4j::Server::CypherNode
|
11
|
-
nodes[object.neo_id] = {
|
12
|
-
id: object.neo_id,
|
13
|
-
labels: (object.is_a?(Neo4j::ActiveNode) ? [object.class.name] : object.labels),
|
14
|
-
properties: object.attributes
|
15
|
-
}
|
16
|
-
when Neo4j::ActiveRel, Neo4j::Server::CypherRelationship
|
17
|
-
edges[[object.start_node.neo_id, object.end_node.neo_id]] = {
|
18
|
-
source: object.start_node.neo_id,
|
19
|
-
target: object.end_node.neo_id,
|
20
|
-
type: object.rel_type,
|
21
|
-
properties: object.props
|
22
|
-
}
|
23
|
-
else
|
24
|
-
fail "Invalid value found: #{object.inspect}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
{
|
29
|
-
nodes: nodes.values,
|
30
|
-
edges: edges.values
|
31
|
-
}.to_json
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|