lib/neo4j/active_base.rb in neo4j-9.6.2 vs lib/neo4j/active_base.rb in neo4j-10.0.0.pre.alpha.1

- old
+ new

@@ -2,86 +2,83 @@ # To contain any base login for ActiveNode/ActiveRel which # is external to the main classes module ActiveBase class << self # private? - def current_session - (SessionRegistry.current_session ||= establish_session).tap do |session| + def current_driver + (@driver ||= establish_session).tap do |session| fail 'No session defined!' if session.nil? end end def on_establish_session(&block) @establish_session_block = block end def establish_session - make_session_wrap!(@establish_session_block.call) if @establish_session_block + @establish_session_block.call if @establish_session_block end + def new_driver(url, options = {}) + verbose_query_logs = Neo4j::Config.fetch(:verbose_query_logs, false) + Neo4j::Core::Driver + .new(url, options.merge(verbose_query_logs: verbose_query_logs)) + end + def current_transaction_or_session - current_transaction || current_session + current_transaction || Transaction end def query(*args) current_transaction_or_session.query(*args) end - # Should support setting session via config options - def current_session=(session) - SessionRegistry.current_session = make_session_wrap!(session) + # Should support setting driver via config options + def driver=(driver) + @driver = driver end - def current_adaptor=(adaptor) - self.current_session = Neo4j::Core::CypherSession.new(adaptor) - end - def run_transaction(run_in_tx = true) - Neo4j::Transaction.run(current_session, run_in_tx) do |tx| + Neo4j::Transaction.run(current_driver, run_in_tx) do |tx| yield tx end end def new_transaction validate_model_schema! - Neo4j::Transaction.new(current_session) + Neo4j::Transaction.new end def new_query(options = {}) validate_model_schema! - Neo4j::Core::Query.new({session: current_session}.merge(options)) + Neo4j::Core::Query.new({session: current_driver}.merge(options)) end def magic_query(*args) if args.empty? || args.map(&:class) == [Hash] ActiveBase.new_query(*args) else - ActiveBase.current_session.query(*args) + ActiveBase.current_driver.query(*args) end end def current_transaction validate_model_schema! - Neo4j::Transaction.current_for(current_session) + Neo4j::Transaction.root end def label_object(label_name) - Neo4j::Core::Label.new(label_name, current_session) + Neo4j::Core::Label.new(label_name) end def logger @logger ||= (Neo4j::Config[:logger] || ActiveSupport::Logger.new(STDOUT)) end private def validate_model_schema! Neo4j::ModelSchema.validate_model_schema! unless Neo4j::Migrations.currently_running_migrations - end - - def make_session_wrap!(session) - session.adaptor.instance_variable_get('@options')[:wrap_level] = :proc - session end end end end