Module: ActiveGraph::Base

Extended by:
Core::Schema
Includes:
Core::Querable, Transactions
Defined in:
lib/active_graph/base.rb

Overview

To contain any base login for Node/Relationship which is external to the main classes

Constant Summary

Constants included from Core::Instrumentable

Core::Instrumentable::EMPTY, Core::Instrumentable::NEWLINE_W_SPACES

Class Method Summary collapse

Methods included from Core::Schema

constraint_owned?, constraints, edition, enterprise?, indexes, normalize, raw_indexes, version, version?

Class Method Details

.driverObject

private?



15
16
17
18
19
# File 'lib/active_graph/base.rb', line 15

def driver
  (@driver ||= establish_driver).tap do |driver|
    fail 'No driver defined!' if driver.nil?
  end
end

.driver=(driver) ⇒ Object

Should support setting driver via config options



36
37
38
39
# File 'lib/active_graph/base.rb', line 36

def driver=(driver)
  @driver&.close
  @driver = driver
end

.element(name, relationship: false) ⇒ Object



63
64
65
# File 'lib/active_graph/base.rb', line 63

def element(name, relationship: false)
  (relationship ? Core::Type : Core::Label).new(name)
end

.establish_driverObject



25
26
27
# File 'lib/active_graph/base.rb', line 25

def establish_driver
  @establish_driver_block.call if @establish_driver_block
end

.label_object(label_name) ⇒ Object



59
60
61
# File 'lib/active_graph/base.rb', line 59

def label_object(label_name)
  ActiveGraph::Core::Label.new(label_name)
end

.loggerObject



67
68
69
# File 'lib/active_graph/base.rb', line 67

def logger
  @logger ||= (ActiveGraph::Config[:logger] || ActiveSupport::Logger.new(STDOUT))
end

.magic_query(*args) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/active_graph/base.rb', line 51

def magic_query(*args)
  if args.empty? || args.map(&:class) == [Hash]
    new_query(*args)
  else
    query(*args)
  end
end

.new_query(options = {}) ⇒ Object



46
47
48
49
# File 'lib/active_graph/base.rb', line 46

def new_query(options = {})
  validate_model_schema!
  ActiveGraph::Core::Query.new(options)
end

.on_establish_driver(&block) ⇒ Object



21
22
23
# File 'lib/active_graph/base.rb', line 21

def on_establish_driver(&block)
  @establish_driver_block = block
end

.query(*args) ⇒ Object



29
30
31
32
33
# File 'lib/active_graph/base.rb', line 29

def query(*args)
  transaction(implicit: true) do
    super(*args)
  end
end

.validating_transaction(&block) ⇒ Object



41
42
43
44
# File 'lib/active_graph/base.rb', line 41

def validating_transaction(&block)
  validate_model_schema!
  transaction(&block)
end