Sha256: 3820d1a84568e6470c10e737746eab1d995ecf485e1b3d613ae5392bcf6adf91
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
require 'active_graph/core/instrumentable' require 'active_graph/transaction' require 'active_graph/core/query_builder' require 'active_graph/core/responses' module ActiveGraph module Core module Querable extend ActiveSupport::Concern include Instrumentable include Responses class_methods do def query(*args) options = case args.size when 3 args.pop when 2 args.pop if args[0].is_a?(::ActiveGraph::Core::Query) end || {} queries(options) { append(*args) }[0] end def queries(options = {}, &block) query_builder = QueryBuilder.new query_builder.instance_eval(&block) transaction do query_set(query_builder.queries, options) end end def setup_queries!(queries, options = {}) return if options[:skip_instrumentation] queries.each do |query| ActiveSupport::Notifications.instrument('neo4j.core.cypher_query', query: query) end end def query_set(queries, options = {}) setup_queries!(queries, skip_instrumentation: options[:skip_instrumentation]) ActiveSupport::Notifications.instrument('neo4j.core.bolt.request') do self.wrap_level = options[:wrap_level] transaction do |tx| queries.map do |query| result_from_data(tx.run(query.cypher, query.parameters)) end end rescue Neo4j::Driver::Exceptions::Neo4jException => e raise ActiveGraph::Core::CypherError.new_from(e.code, e.message) # , e.stack_track.to_a end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activegraph-10.0.0.pre.beta.5 | lib/active_graph/core/querable.rb |
activegraph-10.0.0.pre.beta.4 | lib/active_graph/core/querable.rb |