class Neo4j::Core::QueryClauses::WhereClause
Constants
- ARG_HAS_QUESTION_MARK_REGEX
- KEYWORD
- PAREN_SURROUND_REGEX
Public Class Methods
clause_join()
click to toggle source
# File lib/neo4j/core/query_clauses.rb 285 def clause_join 286 Clause::AND 287 end
clause_strings(clauses)
click to toggle source
# File lib/neo4j/core/query_clauses.rb 277 def clause_strings(clauses) 278 clauses.flat_map do |clause| 279 Array(clause.value).map do |v| 280 (clause.options[:not] ? 'NOT' : '') + (v.to_s.match(PAREN_SURROUND_REGEX) ? v.to_s : "(#{v})") 281 end 282 end 283 end
Private Class Methods
from_args(args, params, options = {})
click to toggle source
Calls superclass method
Neo4j::Core::QueryClauses::Clause::from_args
# File lib/neo4j/core/query_clauses.rb 317 def from_args(args, params, options = {}) 318 query_string, params_arg = args 319 320 if query_string.is_a?(String) && (query_string.match(ARG_HAS_QUESTION_MARK_REGEX) || params_arg.is_a?(Hash)) 321 if params_arg.is_a?(Hash) 322 params.add_params(params_arg) 323 else 324 param_var = params.add_params(question_mark_param: params_arg)[0] 325 query_string = query_string.gsub(ARG_HAS_QUESTION_MARK_REGEX, "\\1{#{param_var}}\\2") 326 end 327 328 [from_arg(query_string, params, options)] 329 else 330 super 331 end 332 end
Public Instance Methods
from_key_and_value(key, value, previous_keys = [])
click to toggle source
# File lib/neo4j/core/query_clauses.rb 266 def from_key_and_value(key, value, previous_keys = []) 267 case value 268 when Hash then hash_key_value_string(key, value, previous_keys) 269 when NilClass then "#{key} IS NULL" 270 when Regexp then regexp_key_value_string(key, value, previous_keys) 271 else 272 key_value_string(key, value, previous_keys) 273 end 274 end
Private Instance Methods
hash_key_value_string(key, value, previous_keys)
click to toggle source
# File lib/neo4j/core/query_clauses.rb 292 def hash_key_value_string(key, value, previous_keys) 293 value.map do |k, v| 294 if k.to_sym == :neo_id 295 v = Array(v).map { |item| (item.respond_to?(:neo_id) ? item.neo_id : item).to_i } 296 key_value_string("ID(#{key})", v) 297 else 298 "#{key}.#{from_key_and_value(k, v, previous_keys + [key])}" 299 end 300 end.join(AND) 301 end
regexp_key_value_string(key, value, previous_keys)
click to toggle source
# File lib/neo4j/core/query_clauses.rb 303 def regexp_key_value_string(key, value, previous_keys) 304 pattern = (value.casefold? ? '(?i)' : '') + value.source 305 306 param = [previous_keys + [key]].join(UNDERSCORE) 307 self.class.paramaterize_key!(param) 308 309 param = add_param(param, pattern) 310 311 "#{key} =~ {#{param}}" 312 end