module Neo4j::ActiveBase
To contain any base login for ActiveNode/ActiveRel which is external to the main classes
Public Class Methods
current_adaptor=(adaptor)
click to toggle source
# File lib/neo4j/active_base.rb 34 def current_adaptor=(adaptor) 35 self.current_session = Neo4j::Core::CypherSession.new(adaptor) 36 end
current_session()
click to toggle source
private?
# File lib/neo4j/active_base.rb 7 def current_session 8 (SessionRegistry.current_session ||= establish_session).tap do |session| 9 fail 'No session defined!' if session.nil? 10 end 11 end
current_session=(session)
click to toggle source
Should support setting session via config options
# File lib/neo4j/active_base.rb 30 def current_session=(session) 31 SessionRegistry.current_session = make_session_wrap!(session) 32 end
current_transaction()
click to toggle source
# File lib/neo4j/active_base.rb 62 def current_transaction 63 validate_model_schema! 64 Neo4j::Transaction.current_for(current_session) 65 end
current_transaction_or_session()
click to toggle source
# File lib/neo4j/active_base.rb 21 def current_transaction_or_session 22 current_transaction || current_session 23 end
establish_session()
click to toggle source
# File lib/neo4j/active_base.rb 17 def establish_session 18 make_session_wrap!(@establish_session_block.call) if @establish_session_block 19 end
label_object(label_name)
click to toggle source
# File lib/neo4j/active_base.rb 67 def label_object(label_name) 68 Neo4j::Core::Label.new(label_name, current_session) 69 end
logger()
click to toggle source
# File lib/neo4j/active_base.rb 71 def logger 72 @logger ||= (Neo4j::Config[:logger] || ActiveSupport::Logger.new(STDOUT)) 73 end
magic_query(*args)
click to toggle source
# File lib/neo4j/active_base.rb 54 def magic_query(*args) 55 if args.empty? || args.map(&:class) == [Hash] 56 ActiveBase.new_query(*args) 57 else 58 ActiveBase.current_session.query(*args) 59 end 60 end
new_query(options = {})
click to toggle source
# File lib/neo4j/active_base.rb 49 def new_query(options = {}) 50 validate_model_schema! 51 Neo4j::Core::Query.new({session: current_session}.merge(options)) 52 end
new_transaction()
click to toggle source
# File lib/neo4j/active_base.rb 44 def new_transaction 45 validate_model_schema! 46 Neo4j::Transaction.new(current_session) 47 end
on_establish_session(&block)
click to toggle source
# File lib/neo4j/active_base.rb 13 def on_establish_session(&block) 14 @establish_session_block = block 15 end
query(*args)
click to toggle source
# File lib/neo4j/active_base.rb 25 def query(*args) 26 current_transaction_or_session.query(*args) 27 end
run_transaction(run_in_tx = true) { |tx| ... }
click to toggle source
# File lib/neo4j/active_base.rb 38 def run_transaction(run_in_tx = true) 39 Neo4j::Transaction.run(current_session, run_in_tx) do |tx| 40 yield tx 41 end 42 end
Private Class Methods
make_session_wrap!(session)
click to toggle source
# File lib/neo4j/active_base.rb 81 def make_session_wrap!(session) 82 session.adaptor.instance_variable_get('@options')[:wrap_level] = :proc 83 session 84 end
validate_model_schema!()
click to toggle source
# File lib/neo4j/active_base.rb 77 def validate_model_schema! 78 Neo4j::ModelSchema.validate_model_schema! unless Neo4j::Migrations.currently_running_migrations 79 end