neo4jrb/neo4j-core

View on GitHub
lib/neo4j/core/cypher_session.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'active_support/core_ext/module/delegation'

module Neo4j
  module Core
    class CypherSession
      attr_reader :adaptor
      delegate :close, to: :adaptor

      def initialize(adaptor)
        fail ArgumentError, "Invalid adaptor: #{adaptor.inspect}" if !adaptor.is_a?(Adaptors::Base)

        @adaptor = adaptor

        @adaptor.connect
      end

      def transaction_class
        Neo4j::Core::CypherSession::Transactions::Base
      end

      %w[
        query
        queries

        transaction

        version

        indexes
        constraints
      ].each do |method, &_block|
        define_method(method) do |*args, &block|
          @adaptor.send(method, self, *args, &block)
        end
      end
    end
  end
end