module ActiveGraph::Core::Querable

Public Instance Methods

queries(options = {}, &block) click to toggle source
   # File lib/active_graph/core/querable.rb
24 def queries(options = {}, &block)
25   query_builder = QueryBuilder.new
26 
27   query_builder.instance_eval(&block)
28 
29   transaction do
30     query_set(query_builder.queries, options)
31   end
32 end
query(*args) click to toggle source
   # File lib/active_graph/core/querable.rb
13 def query(*args)
14   options = case args.size
15             when 3
16               args.pop
17             when 2
18               args.pop if args[0].is_a?(::ActiveGraph::Core::Query)
19             end || {}
20 
21   queries(options) { append(*args) }[0]
22 end
query_set(queries, options = {}) click to toggle source
   # File lib/active_graph/core/querable.rb
41 def query_set(queries, options = {})
42   setup_queries!(queries, skip_instrumentation: options[:skip_instrumentation])
43 
44   ActiveSupport::Notifications.instrument('neo4j.core.bolt.request') do
45     transaction do |tx|
46       queries.map do |query|
47         tx.run(query.cypher, query.parameters).tap { |result| result.wrap = options[:wrap] != false }
48       end
49     end
50   end
51 end
setup_queries!(queries, options = {}) click to toggle source
   # File lib/active_graph/core/querable.rb
34 def setup_queries!(queries, options = {})
35   return if options[:skip_instrumentation]
36   queries.each do |query|
37     ActiveSupport::Notifications.instrument('neo4j.core.cypher_query', query: query)
38   end
39 end