class Neo4j::Core::CypherSession::Adaptors::Base
Constants
- EMPTY
- NEWLINE_W_SPACES
- Query
- USER_AGENT_STRING
Attributes
options[R]
wrap_level[RW]
Public Class Methods
transaction_class()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 200 def transaction_class 201 fail '.transaction_class method not implemented on adaptor!' 202 end
Public Instance Methods
close()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 193 def close; end
connect(*_args)
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 66 def connect(*_args) 67 fail '#connect not implemented!' 68 end
default_subscribe()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 189 def default_subscribe 190 subscribe_to_request 191 end
logger()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 154 def logger 155 return @logger if @logger 156 157 @logger = if @options[:logger] 158 @options[:logger] 159 else 160 Logger.new(logger_location).tap do |logger| 161 logger.level = logger_level 162 end 163 end 164 end
queries(session, options = {}, &block)
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 113 def queries(session, options = {}, &block) 114 query_builder = QueryBuilder.new 115 116 query_builder.instance_eval(&block) 117 118 new_or_current_transaction(session, options[:transaction]) do |tx| 119 query_set(tx, query_builder.queries, {commit: !options[:transaction]}.merge(options)) 120 end 121 end
query(session, *args)
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 102 def query(session, *args) 103 options = case args.size 104 when 3 105 args.pop 106 when 2 107 args.pop if args[0].is_a?(::Neo4j::Core::Query) 108 end || {} 109 110 queries(session, options) { append(*args) }[0] 111 end
setup_queries!(queries, transaction, options = {})
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 166 def setup_queries!(queries, transaction, options = {}) 167 validate_connection!(transaction) 168 169 return if options[:skip_instrumentation] 170 queries.each do |query| 171 self.class.instrument_query(query, self) {} 172 end 173 end
supports_metadata?()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 195 def supports_metadata? 196 true 197 end
transaction(session) { |tx| ... }
click to toggle source
If called without a block, returns a Transaction
object which can be used to call query/queries/mark_failed/commit If called with a block, the Transaction
object is yielded to the block and `commit` is ensured. Any uncaught exceptions will mark the transaction as failed first
# File lib/neo4j/core/cypher_session/adaptors.rb 138 def transaction(session) 139 return self.class.transaction_class.new(session) if !block_given? 140 141 begin 142 tx = transaction(session) 143 144 yield tx 145 rescue => e 146 tx.mark_failed if tx 147 148 raise e 149 ensure 150 tx.close if tx 151 end 152 end
Private Instance Methods
logger_level()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 224 def logger_level 225 @options[:logger_level] || Logger::WARN 226 end
logger_location()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 220 def logger_location 221 @options[:logger_location] || STDOUT 222 end
new_or_current_transaction(session, tx) { |tx| ... }
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 207 def new_or_current_transaction(session, tx, &block) 208 if tx 209 yield(tx) 210 else 211 transaction(session, &block) 212 end 213 end
validate_connection!(transaction)
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors.rb 215 def validate_connection!(transaction) 216 fail 'Query attempted without a connection' if !connected? 217 fail "Invalid transaction object: #{transaction}" if !transaction.is_a?(self.class.transaction_class) 218 end