class ActiveGraph::Railtie

Public Instance Methods

empty_config() click to toggle source
   # File lib/active_graph/railtie.rb
 9 def empty_config
10   ActiveSupport::OrderedOptions.new.tap do |cfg|
11     cfg.driver = ActiveSupport::OrderedOptions.new
12   end
13 end
final_driver_config!(config) click to toggle source
   # File lib/active_graph/railtie.rb
78 def final_driver_config!(config)
79   { url: ENV['NEO4J_URL'] }.compact.merge(config[:driver]).merge(yaml_config_data)
80 end
register_neo4j_cypher_logging() click to toggle source
    # File lib/active_graph/railtie.rb
 94 def register_neo4j_cypher_logging
 95   return if @neo4j_cypher_logging_registered
 96 
 97   ActiveGraph::Core::Query.pretty_cypher = ActiveGraph::Config[:pretty_logged_cypher_queries]
 98 
 99   logger_proc = ->(message) do
100     (ActiveGraph::Config[:logger] ||= Rails.logger).debug message
101   end
102   ActiveGraph::Base.subscribe_to_query(&logger_proc)
103   ActiveGraph::Base.subscribe_to_request(&logger_proc)
104 
105   @neo4j_cypher_logging_registered = true
106 end
setup!(config = empty_config) click to toggle source
   # File lib/active_graph/railtie.rb
62 def setup!(config = empty_config)
63   config = final_driver_config!(config)
64   scheme = config.delete(:scheme) || 'bolt'
65   host = config.delete(:host) || 'localhost'
66   port = config.delete(:port) || 7687
67   url = config.delete(:url) || URI::Generic.build( scheme: scheme, host: host, port: port ).to_s
68   username = config.delete(:username)
69   password = config.delete(:password)
70   auth_token = config.delete(:auth_token)
71   auth_token ||= username ? Neo4j::Driver::AuthTokens.basic(username, password) : Neo4j::Driver::AuthTokens.none
72   register_neo4j_cypher_logging
73 
74   method = url.is_a?(Enumerable) ? :routing_driver : :driver
75   Neo4j::Driver::GraphDatabase.send(method, url, auth_token, config)
76 end
yaml_config_data() click to toggle source
   # File lib/active_graph/railtie.rb
82 def yaml_config_data
83   @yaml_config_data ||=
84     yaml_path ? YAML.load(ERB.new(yaml_path.read).result)[Rails.env].transform_keys!(&:to_sym) : {}
85 end
yaml_path() click to toggle source
   # File lib/active_graph/railtie.rb
87 def yaml_path
88   return unless defined?(Rails)
89   @yaml_path ||= %w(config/neo4j.yml config/neo4j.yaml).map do |path|
90     Rails.root.join(path)
91   end.detect(&:exist?)
92 end