Class: Neo4j::Core::QueryClauses::WhereClause
- Inherits:
-
Clause
- Object
- Clause
- Neo4j::Core::QueryClauses::WhereClause
show all
- Defined in:
- lib/neo4j-core/query_clauses.rb
Constant Summary
collapse
- KEYWORD =
'WHERE'
- PAREN_SURROUND_REGEX =
/^\s*\(.+\)\s*$/
- ARG_HAS_QUESTION_MARK_REGEX =
/(^|\(|\s)\?(\s|\)|$)/
Constants inherited
from Clause
Clause::AND, Clause::COMMA_SPACE, Clause::UNDERSCORE
Instance Attribute Summary
Attributes inherited from Clause
#arg, #options, #params
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Clause
#_nested_value_hash?, #_use_key_for_var?, #attributes_from_key_and_value, clause_color, clause_string, from_arg, #from_hash, #from_string, #initialize, keyword, keyword_downcase, #label_from_key_and_value, #node_from_key_and_value, paramaterize_key!, to_cypher, #value, #var_from_key_and_value
Class Method Details
.clause_join ⇒ Object
289
290
291
|
# File 'lib/neo4j-core/query_clauses.rb', line 289
def clause_join
Clause::AND
end
|
.clause_strings(clauses) ⇒ Object
281
282
283
284
285
286
287
|
# File 'lib/neo4j-core/query_clauses.rb', line 281
def clause_strings(clauses)
clauses.flat_map do |clause|
Array(clause.value).map do |v|
(clause.options[:not] ? 'NOT' : '') + (v.to_s.match(PAREN_SURROUND_REGEX) ? v.to_s : "(#{v})")
end
end
end
|
.from_args(args, options = {}) ⇒ Object
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
|
# File 'lib/neo4j-core/query_clauses.rb', line 321
def from_args(args, options = {})
query_string, params = args
if query_string.is_a?(String) && (query_string.match(ARG_HAS_QUESTION_MARK_REGEX) || params.is_a?(Hash))
if !params.is_a?(Hash)
question_mark_params_param = self.question_mark_params_param
query_string = query_string.gsub(ARG_HAS_QUESTION_MARK_REGEX, "\\1{#{question_mark_params_param}}\\2")
params = {question_mark_params_param.to_sym => params}
end
clause = from_arg(query_string, options).tap do |clause|
clause.params.merge!(params)
end
[clause]
else
super
end
end
|
.question_mark_param_index ⇒ Object
345
346
347
348
349
350
|
# File 'lib/neo4j-core/query_clauses.rb', line 345
def question_mark_param_index
@question_mark_param_index ||= 1
@question_mark_param_index.tap do
@question_mark_param_index += 1
end
end
|
.question_mark_params_param ⇒ Object
341
342
343
|
# File 'lib/neo4j-core/query_clauses.rb', line 341
def question_mark_params_param
"question_mark_param#{question_mark_param_index}"
end
|
Instance Method Details
#from_key_and_value(key, value, previous_keys = []) ⇒ Object
269
270
271
272
273
274
275
276
277
278
|
# File 'lib/neo4j-core/query_clauses.rb', line 269
def from_key_and_value(key, value, previous_keys = [])
case value
when Hash then hash_key_value_string(key, value, previous_keys)
when NilClass then "#{key} IS NULL"
when Regexp then regexp_key_value_string(key, value, previous_keys)
when Array, Range then key_value_string(key, value, previous_keys)
else
key_value_string(key, value, previous_keys)
end
end
|