activegraph 10.0.0.pre.alpha.6 → 10.0.0.pre.alpha.7
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/active_base.rb +1 -1
- data/lib/neo4j/active_node/dependent/query_proxy_methods.rb +1 -1
- data/lib/neo4j/active_node/persistence.rb +1 -1
- data/lib/neo4j/active_node/query.rb +1 -1
- data/lib/neo4j/active_node/query/query_proxy_methods.rb +3 -3
- data/lib/neo4j/core/driver.rb +5 -5
- data/lib/neo4j/core/label.rb +33 -32
- data/lib/neo4j/core/query.rb +2 -2
- data/lib/neo4j/core/query_clauses.rb +10 -10
- data/lib/neo4j/core/query_find_in_batches.rb +1 -1
- data/lib/neo4j/core/schema.rb +36 -5
- data/lib/neo4j/migrations/helpers/schema.rb +14 -2
- data/lib/neo4j/railtie.rb +1 -1
- data/lib/neo4j/shared/persistence.rb +1 -1
- data/lib/neo4j/shared/query_factory.rb +27 -7
- data/lib/neo4j/version.rb +1 -1
- data/neo4j.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ee929286df7c03716620060ba6229dae865612f295c02e02872a8a1fa329c7f
|
4
|
+
data.tar.gz: 7d3983fc31041476a7cc6e0b92119b6c1e6ad1207ae5d1e6293871a92f9f865a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 582aedd1880e79fb5983774d2fea5456b247f8c72b57caa676de5b5272766f4e7db44c6de927c3899a23a5bc38a92ef4b71bffc782ba44facf9086d818ca9c58
|
7
|
+
data.tar.gz: 982dc47105a57220e1b1e09a1fb3ed18b47646dd9c7166cef754a30609e12f0487722b411b7efef2dcacc3fa5bb7ac149028b8ccb3d3c8abca4cb1b93f501d32
|
data/lib/neo4j/active_base.rb
CHANGED
@@ -25,7 +25,7 @@ module Neo4j
|
|
25
25
|
def new_driver(url, options = {})
|
26
26
|
verbose_query_logs = Neo4j::Config.fetch(:verbose_query_logs, false)
|
27
27
|
Neo4j::Core::Driver
|
28
|
-
.new(url, options
|
28
|
+
.new(url, options, verbose_query_logs: verbose_query_logs)
|
29
29
|
end
|
30
30
|
|
31
31
|
def transaction
|
@@ -66,7 +66,7 @@ module Neo4j::ActiveNode
|
|
66
66
|
# @param [Array] labels The labels to use for creating the new node.
|
67
67
|
# @return [Neo4j::Node] A CypherNode or EmbeddedNode
|
68
68
|
def _create_node(node_props, labels = labels_for_create)
|
69
|
-
query = "CREATE (n:`#{Array(labels).join('`:`')}`) SET n =
|
69
|
+
query = "CREATE (n:`#{Array(labels).join('`:`')}`) SET n = $props RETURN n"
|
70
70
|
neo4j_query(query, {props: node_props}, wrap_level: :core_entity).to_a[0].n
|
71
71
|
end
|
72
72
|
|
@@ -23,7 +23,7 @@ module Neo4j
|
|
23
23
|
# This method does not exist within QueryProxy and can only be used to start a new chain.
|
24
24
|
#
|
25
25
|
# @example Start a new QueryProxy chain with the first identifier set manually
|
26
|
-
# # Generates: MATCH (s:`Student`), (l:`Lesson`), s-[rel1:`ENROLLED_IN`]->(l:`Lesson`) WHERE ID(s) =
|
26
|
+
# # Generates: MATCH (s:`Student`), (l:`Lesson`), s-[rel1:`ENROLLED_IN`]->(l:`Lesson`) WHERE ID(s) = $neo_id_17963
|
27
27
|
# student.as(:s).lessons(:l)
|
28
28
|
#
|
29
29
|
# @param [String, Symbol] node_var The identifier to use within the QueryProxy object
|
@@ -88,9 +88,9 @@ module Neo4j
|
|
88
88
|
def include?(other, target = nil)
|
89
89
|
query_with_target(target) do |var|
|
90
90
|
where_filter = if other.respond_to?(:neo_id) || association_id_key == :neo_id
|
91
|
-
"ID(#{var}) =
|
91
|
+
"ID(#{var}) = $other_node_id"
|
92
92
|
else
|
93
|
-
"#{var}.#{association_id_key} =
|
93
|
+
"#{var}.#{association_id_key} = $other_node_id"
|
94
94
|
end
|
95
95
|
node_id = other.respond_to?(:neo_id) ? other.neo_id : other
|
96
96
|
self.where(where_filter).params(other_node_id: node_id).query.reorder.return("count(#{var}) as count").first.count > 0
|
@@ -287,7 +287,7 @@ module Neo4j
|
|
287
287
|
def exists_query_start(condition, target)
|
288
288
|
case condition
|
289
289
|
when Integer
|
290
|
-
self.where("ID(#{target}) =
|
290
|
+
self.where("ID(#{target}) = $exists_condition").params(exists_condition: condition)
|
291
291
|
when Hash
|
292
292
|
self.where(condition.keys.first => condition.values.first)
|
293
293
|
when String
|
data/lib/neo4j/core/driver.rb
CHANGED
@@ -21,7 +21,7 @@ module Neo4j
|
|
21
21
|
end
|
22
22
|
|
23
23
|
class << self
|
24
|
-
def new_instance(url)
|
24
|
+
def new_instance(url, options = {})
|
25
25
|
uri = URI(url)
|
26
26
|
user = uri.user
|
27
27
|
password = uri.password
|
@@ -30,14 +30,14 @@ module Neo4j
|
|
30
30
|
else
|
31
31
|
Neo4j::Driver::AuthTokens.none
|
32
32
|
end
|
33
|
-
Neo4j::Driver::GraphDatabase.driver(url, auth_token)
|
33
|
+
Neo4j::Driver::GraphDatabase.driver(url, auth_token, options)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
def initialize(url, options = {})
|
37
|
+
def initialize(url, options = {}, extended_options = {})
|
38
38
|
self.url = url
|
39
|
-
@driver = self.class.new_instance(url)
|
40
|
-
@options =
|
39
|
+
@driver = self.class.new_instance(url, options.merge(encryption: false))
|
40
|
+
@options = extended_options
|
41
41
|
end
|
42
42
|
|
43
43
|
def logger
|
data/lib/neo4j/core/label.rb
CHANGED
@@ -48,11 +48,13 @@ module Neo4j
|
|
48
48
|
def drop_constraint(property, constraint)
|
49
49
|
cypher = case constraint[:type]
|
50
50
|
when :unique, :uniqueness
|
51
|
-
"
|
51
|
+
"n.`#{property}` IS UNIQUE"
|
52
|
+
when :exists
|
53
|
+
"exists(n.`#{property}`)"
|
52
54
|
else
|
53
55
|
fail "Not supported constraint #{constraint.inspect}"
|
54
56
|
end
|
55
|
-
schema_query(cypher)
|
57
|
+
schema_query("DROP CONSTRAINT ON (n:`#{name}`) ASSERT #{cypher}")
|
56
58
|
end
|
57
59
|
|
58
60
|
def drop_uniqueness_constraint(property, options = {})
|
@@ -65,25 +67,10 @@ module Neo4j
|
|
65
67
|
end
|
66
68
|
end
|
67
69
|
|
68
|
-
def self.indexes
|
69
|
-
Neo4j::Transaction.indexes
|
70
|
-
end
|
71
|
-
|
72
70
|
def drop_indexes
|
73
71
|
self.class.drop_indexes
|
74
72
|
end
|
75
73
|
|
76
|
-
def self.drop_indexes
|
77
|
-
indexes.each do |definition|
|
78
|
-
begin
|
79
|
-
Neo4j::Transaction.query("DROP INDEX ON :`#{definition[:label]}`(#{definition[:properties][0]})")
|
80
|
-
rescue Neo4j::Server::CypherResponse::ResponseError
|
81
|
-
# This will error on each constraint. Ignore and continue.
|
82
|
-
next
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
74
|
def index?(property)
|
88
75
|
indexes.any? { |definition| definition[:properties] == [property.to_sym] }
|
89
76
|
end
|
@@ -100,16 +87,6 @@ module Neo4j
|
|
100
87
|
end
|
101
88
|
end
|
102
89
|
|
103
|
-
def drop_uniqueness_constraints
|
104
|
-
self.class.drop_uniqueness_constraints
|
105
|
-
end
|
106
|
-
|
107
|
-
def self.drop_uniqueness_constraints
|
108
|
-
Neo4j::Transaction.constraints.each do |definition|
|
109
|
-
Neo4j::Transaction.query("DROP CONSTRAINT ON (n:`#{definition[:label]}`) ASSERT n.`#{definition[:properties][0]}` IS UNIQUE")
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
90
|
def constraint?(property)
|
114
91
|
constraints.any? { |definition| definition[:properties] == [property.to_sym] }
|
115
92
|
end
|
@@ -118,11 +95,6 @@ module Neo4j
|
|
118
95
|
uniqueness_constraints.include?([property])
|
119
96
|
end
|
120
97
|
|
121
|
-
def self.wait_for_schema_changes
|
122
|
-
schema_threads.map(&:join)
|
123
|
-
set_schema_threads(session, [])
|
124
|
-
end
|
125
|
-
|
126
98
|
private
|
127
99
|
|
128
100
|
# Store schema threads on the session so that we can easily wait for all
|
@@ -136,6 +108,35 @@ module Neo4j
|
|
136
108
|
end
|
137
109
|
|
138
110
|
class << self
|
111
|
+
def indexes
|
112
|
+
Neo4j::Transaction.indexes
|
113
|
+
end
|
114
|
+
|
115
|
+
def drop_indexes
|
116
|
+
indexes.each do |definition|
|
117
|
+
begin
|
118
|
+
Neo4j::Transaction.query("DROP INDEX ON :`#{definition[:label]}`(#{definition[:properties][0]})")
|
119
|
+
rescue Neo4j::Driver::Exceptions::DatabaseException
|
120
|
+
# This will error on each constraint. Ignore and continue.
|
121
|
+
next
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def drop_constraints
|
127
|
+
Neo4j::Transaction.named_constraints.each do |constraint|
|
128
|
+
Neo4j::Transaction.query("DROP CONSTRAINT #{constraint.name}")
|
129
|
+
end
|
130
|
+
Neo4j::Transaction.constraints.each do |definition|
|
131
|
+
Neo4j::Transaction.query("DROP CONSTRAINT ON (n:`#{definition[:label]}`) ASSERT n.`#{definition[:properties][0]}` IS UNIQUE")
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def wait_for_schema_changes
|
136
|
+
schema_threads.map(&:join)
|
137
|
+
set_schema_threads(session, [])
|
138
|
+
end
|
139
|
+
|
139
140
|
def schema_threads
|
140
141
|
Neo4j::Transaction.instance_variable_get('@_schema_threads') || []
|
141
142
|
end
|
data/lib/neo4j/core/query.rb
CHANGED
@@ -216,10 +216,10 @@ module Neo4j
|
|
216
216
|
|
217
217
|
# Allows for the specification of values for params specified in query
|
218
218
|
# @example
|
219
|
-
# # Creates a query representing the cypher: MATCH (q: Person {id:
|
219
|
+
# # Creates a query representing the cypher: MATCH (q: Person {id: $id})
|
220
220
|
# # Calls to params don't affect the cypher query generated, but the params will be
|
221
221
|
# # Passed down when the query is made
|
222
|
-
# Query.new.match('(q: Person {id:
|
222
|
+
# Query.new.match('(q: Person {id: $id})').params(id: 12)
|
223
223
|
#
|
224
224
|
def params(args)
|
225
225
|
copy.tap { |new_query| new_query.instance_variable_get('@params'.freeze).add_params(args) }
|
@@ -188,13 +188,13 @@ module Neo4j
|
|
188
188
|
|
189
189
|
param = add_param(param, value)
|
190
190
|
|
191
|
-
"#{key} #{array_value?(value, is_set) ? 'IN' : '='} {
|
191
|
+
"#{key} #{array_value?(value, is_set) ? 'IN' : '='} $#{param}"
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
195
|
def range_key_value_string(key, value, previous_keys, param)
|
196
196
|
begin_param, end_param = add_params("#{param}_range_min" => value.begin, "#{param}_range_max" => value.end)
|
197
|
-
"#{key} >= {
|
197
|
+
"#{key} >= $#{begin_param} AND #{previous_keys[-2]}.#{key} <#{'=' unless value.exclude_end?} $#{end_param}"
|
198
198
|
end
|
199
199
|
|
200
200
|
def array_value?(value, is_set)
|
@@ -221,7 +221,7 @@ module Neo4j
|
|
221
221
|
else
|
222
222
|
param_key = "#{prefix}#{key}".gsub(/:+/, '_')
|
223
223
|
param_key = add_param(param_key, value)
|
224
|
-
"#{key}: {
|
224
|
+
"#{key}: $#{param_key}"
|
225
225
|
end
|
226
226
|
end.join(Clause::COMMA_SPACE)
|
227
227
|
|
@@ -306,7 +306,7 @@ module Neo4j
|
|
306
306
|
|
307
307
|
param = add_param(param, pattern)
|
308
308
|
|
309
|
-
"#{key} =~ {
|
309
|
+
"#{key} =~ $#{param}"
|
310
310
|
end
|
311
311
|
|
312
312
|
class << self
|
@@ -320,7 +320,7 @@ module Neo4j
|
|
320
320
|
params.add_params(params_arg)
|
321
321
|
else
|
322
322
|
param_var = params.add_params(question_mark_param: params_arg)[0]
|
323
|
-
query_string = query_string.gsub(ARG_HAS_QUESTION_MARK_REGEX, "\\1{
|
323
|
+
query_string = query_string.gsub(ARG_HAS_QUESTION_MARK_REGEX, "\\1$#{param_var}\\2")
|
324
324
|
end
|
325
325
|
|
326
326
|
[from_arg(query_string, params, options)]
|
@@ -456,7 +456,7 @@ module Neo4j
|
|
456
456
|
end
|
457
457
|
|
458
458
|
class CreateUniqueClause < CreateClause
|
459
|
-
KEYWORD = '
|
459
|
+
KEYWORD = 'MERGE'
|
460
460
|
end
|
461
461
|
|
462
462
|
class MergeClause < CreateClause
|
@@ -536,7 +536,7 @@ module Neo4j
|
|
536
536
|
def from_string(value)
|
537
537
|
param_var = "#{self.class.keyword_downcase}_#{value}"
|
538
538
|
param_var = add_param(param_var, value.to_i)
|
539
|
-
"{
|
539
|
+
"$#{param_var}"
|
540
540
|
end
|
541
541
|
|
542
542
|
def from_integer(value)
|
@@ -566,13 +566,13 @@ module Neo4j
|
|
566
566
|
def from_string(value)
|
567
567
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
568
568
|
clause_id = add_param(clause_id, value.to_i)
|
569
|
-
"{
|
569
|
+
"$#{clause_id}"
|
570
570
|
end
|
571
571
|
|
572
572
|
def from_integer(value)
|
573
573
|
clause_id = "#{self.class.keyword_downcase}_#{value}"
|
574
574
|
clause_id = add_param(clause_id, value)
|
575
|
-
"{
|
575
|
+
"$#{clause_id}"
|
576
576
|
end
|
577
577
|
|
578
578
|
class << self
|
@@ -597,7 +597,7 @@ module Neo4j
|
|
597
597
|
when Hash
|
598
598
|
if @options[:set_props]
|
599
599
|
param = add_param("#{key}_set_props", value)
|
600
|
-
"#{key} = {
|
600
|
+
"#{key} = $#{param}"
|
601
601
|
else
|
602
602
|
value.map { |k, v| key_value_string("#{key}.`#{k}`", v, ['setter'], true) }
|
603
603
|
end
|
@@ -19,7 +19,7 @@ module Neo4j
|
|
19
19
|
break if records_size < batch_size
|
20
20
|
|
21
21
|
primary_key_var = Neo4j::Core::QueryClauses::Clause.from_key_and_single_value(node_var, prop_var)
|
22
|
-
records = query.where("#{primary_key_var} >
|
22
|
+
records = query.where("#{primary_key_var} > $primary_key_offset")
|
23
23
|
.params(primary_key_offset: primary_key_offset).to_a
|
24
24
|
end
|
25
25
|
end
|
data/lib/neo4j/core/schema.rb
CHANGED
@@ -12,19 +12,50 @@ module Neo4j
|
|
12
12
|
result = query('CALL db.indexes()', {}, skip_instrumentation: true)
|
13
13
|
|
14
14
|
result.map do |row|
|
15
|
-
|
16
|
-
{ type: row.type.to_sym, label: label.to_sym, properties: [property.to_sym], state: row.state.to_sym }
|
15
|
+
{ type: row.type.to_sym, label: label(result, row), properties: properties(row), state: row.state.to_sym }
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
20
19
|
def constraints
|
21
20
|
result = query('CALL db.indexes()', {}, skip_instrumentation: true)
|
22
21
|
|
23
|
-
result.select
|
24
|
-
|
25
|
-
{ type: :uniqueness, label: label.to_sym, properties: [property.to_sym] }
|
22
|
+
result.select(&method(v4?(result) ? :v4_filter : :v3_filter)).map do |row|
|
23
|
+
{ type: :uniqueness, label: label(result, row), properties: properties(row) }
|
26
24
|
end
|
27
25
|
end
|
26
|
+
|
27
|
+
def named_constraints
|
28
|
+
result = query('CALL db.constraints()', {}, skip_instrumentation: true)
|
29
|
+
result.columns.include?(:name) ? result : []
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def v4_filter(row)
|
35
|
+
row.uniqueness == 'UNIQUE'
|
36
|
+
end
|
37
|
+
|
38
|
+
def v3_filter(row)
|
39
|
+
row.type == 'node_unique_property'
|
40
|
+
end
|
41
|
+
|
42
|
+
def label(result, row)
|
43
|
+
(v34?(result) ? row.label : (v4?(result) ? row.labelsOrTypes : row.tokenNames).first).to_sym
|
44
|
+
end
|
45
|
+
|
46
|
+
def v4?(result)
|
47
|
+
return @v4 unless @v4.nil?
|
48
|
+
@v4 = result.columns.include?(:labelsOrTypes)
|
49
|
+
end
|
50
|
+
|
51
|
+
def v34?(result)
|
52
|
+
return @v34 unless @v34.nil?
|
53
|
+
@v34 = result.columns.include?(:label)
|
54
|
+
end
|
55
|
+
|
56
|
+
def properties(row)
|
57
|
+
row.properties.map(&:to_sym)
|
58
|
+
end
|
28
59
|
end
|
29
60
|
end
|
30
61
|
end
|
@@ -10,14 +10,26 @@ module Neo4j
|
|
10
10
|
force = options[:force] || false
|
11
11
|
type = options[:type] || :uniqueness
|
12
12
|
label_object = ActiveBase.label_object(label)
|
13
|
-
|
13
|
+
if label_object.constraint?(property)
|
14
|
+
if force
|
15
|
+
label_object.drop_constraint(property, type: type)
|
16
|
+
else
|
17
|
+
fail_duplicate_constraint_or_index!(:constraint, label, property)
|
18
|
+
end
|
19
|
+
end
|
14
20
|
label_object.create_constraint(property, type: type)
|
15
21
|
end
|
16
22
|
|
17
23
|
def add_index(label, property, options = {})
|
18
24
|
force = options[:force] || false
|
19
25
|
label_object = ActiveBase.label_object(label)
|
20
|
-
|
26
|
+
if label_object.index?(property)
|
27
|
+
if force
|
28
|
+
label_object.drop_index(property)
|
29
|
+
else
|
30
|
+
fail_duplicate_constraint_or_index!(:index, label, property)
|
31
|
+
end
|
32
|
+
end
|
21
33
|
label_object.create_index(property)
|
22
34
|
end
|
23
35
|
|
data/lib/neo4j/railtie.rb
CHANGED
@@ -237,7 +237,7 @@ module Neo4j::Shared
|
|
237
237
|
|
238
238
|
def increment_by_query!(match_query, attribute, by, element_name = :n)
|
239
239
|
new_attribute = match_query.with(element_name)
|
240
|
-
.set("#{element_name}.`#{attribute}` = COALESCE(#{element_name}.`#{attribute}`, 0) +
|
240
|
+
.set("#{element_name}.`#{attribute}` = COALESCE(#{element_name}.`#{attribute}`, 0) + $by")
|
241
241
|
.params(by: by).limit(1)
|
242
242
|
.pluck("#{element_name}.`#{attribute}`").first
|
243
243
|
return false unless new_attribute
|
@@ -47,7 +47,7 @@ module Neo4j::Shared
|
|
47
47
|
|
48
48
|
def match_query
|
49
49
|
base_query
|
50
|
-
.match(match_string).where("ID(#{identifier}) = {
|
50
|
+
.match(match_string).where("ID(#{identifier}) = $#{identifier_id}")
|
51
51
|
.params(identifier_id.to_sym => graph_object.neo_id)
|
52
52
|
end
|
53
53
|
|
@@ -70,7 +70,7 @@ module Neo4j::Shared
|
|
70
70
|
def create_query
|
71
71
|
return match_query if graph_object.persisted?
|
72
72
|
labels = graph_object.labels_for_create.map { |l| ":`#{l}`" }.join
|
73
|
-
base_query.create("(#{identifier}#{labels} {
|
73
|
+
base_query.create("(#{identifier}#{labels} $#{identifier}_params)").params(identifier_params => graph_object.props_for_create)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -84,9 +84,9 @@ module Neo4j::Shared
|
|
84
84
|
def create_query
|
85
85
|
return match_query if graph_object.persisted?
|
86
86
|
create_props, set_props = filtered_props
|
87
|
-
base_query.send(graph_object.create_method, query_string).break
|
88
|
-
|
89
|
-
|
87
|
+
base_query.send(graph_object.create_method, query_string(create_props)).break
|
88
|
+
.set(identifier => set_props)
|
89
|
+
.params(params(create_props))
|
90
90
|
end
|
91
91
|
|
92
92
|
private
|
@@ -95,8 +95,28 @@ module Neo4j::Shared
|
|
95
95
|
Neo4j::Shared::FilteredHash.new(graph_object.props_for_create, graph_object.creates_unique_option).filtered_base
|
96
96
|
end
|
97
97
|
|
98
|
-
def query_string
|
99
|
-
"(#{graph_object.from_node_identifier})-[#{identifier}:`#{graph_object.type}`
|
98
|
+
def query_string(create_props)
|
99
|
+
"(#{graph_object.from_node_identifier})-[#{identifier}:`#{graph_object.type}` #{pattern(create_props)}]->(#{graph_object.to_node_identifier})"
|
100
|
+
end
|
101
|
+
|
102
|
+
def params(create_props)
|
103
|
+
unique? ? create_props.transform_keys { |key| scoped(key).to_sym } : { namespace.to_sym => create_props }
|
104
|
+
end
|
105
|
+
|
106
|
+
def unique?
|
107
|
+
graph_object.create_method == :create_unique
|
108
|
+
end
|
109
|
+
|
110
|
+
def pattern(create_props)
|
111
|
+
unique? ? "{#{create_props.keys.map { |key| "#{key}: $#{scoped(key)}" }.join(', ')}}" : "$#{namespace}"
|
112
|
+
end
|
113
|
+
|
114
|
+
def scoped(key)
|
115
|
+
"#{namespace}_#{key}"
|
116
|
+
end
|
117
|
+
|
118
|
+
def namespace
|
119
|
+
"#{identifier}_create_props"
|
100
120
|
end
|
101
121
|
end
|
102
122
|
end
|
data/lib/neo4j/version.rb
CHANGED
data/neo4j.gemspec
CHANGED
@@ -40,7 +40,7 @@ DESCRIPTION
|
|
40
40
|
s.add_development_dependency('guard-rspec')
|
41
41
|
s.add_development_dependency('guard-rubocop')
|
42
42
|
s.add_development_dependency('neo4j-rake_tasks', '>= 0.3.0')
|
43
|
-
s.add_development_dependency("neo4j-#{RUBY_PLATFORM =~ /java/ ? 'java' : 'ruby'}-driver", '>= 0.
|
43
|
+
s.add_development_dependency("neo4j-#{RUBY_PLATFORM =~ /java/ ? 'java' : 'ruby'}-driver", '>= 0.3.0')
|
44
44
|
s.add_development_dependency('os')
|
45
45
|
s.add_development_dependency('pry')
|
46
46
|
s.add_development_dependency('railties', '>= 4.0')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activegraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.0.0.pre.alpha.
|
4
|
+
version: 10.0.0.pre.alpha.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
131
|
+
version: 0.3.0
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.
|
138
|
+
version: 0.3.0
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: os
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -414,7 +414,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
414
414
|
- !ruby/object:Gem::Version
|
415
415
|
version: 1.3.1
|
416
416
|
requirements: []
|
417
|
-
rubygems_version: 3.0.
|
417
|
+
rubygems_version: 3.0.6
|
418
418
|
signing_key:
|
419
419
|
specification_version: 4
|
420
420
|
summary: A graph database for Ruby
|