class Neo4j::Railtie

Public Instance Methods

default_session_path_or_url() click to toggle source
    # File lib/neo4j/railtie.rb
107 def default_session_path_or_url
108   ENV['NEO4J_URL'] || ENV['NEO4J_PATH'] || 'http://localhost:7474'
109 end
default_session_type() click to toggle source
    # File lib/neo4j/railtie.rb
 97 def default_session_type
 98   if ENV['NEO4J_URL']
 99     scheme = URI(ENV['NEO4J_URL']).scheme
100     fail "Invalid scheme for NEO4J_URL: #{scheme}" if !%w(http https bolt).include?(scheme)
101     scheme == 'https' ? 'http' : scheme
102   else
103     ENV['NEO4J_TYPE'] || :http
104   end.to_sym
105 end
empty_config() click to toggle source
   # File lib/neo4j/railtie.rb
10 def empty_config
11   ActiveSupport::OrderedOptions.new.tap { |cfg| cfg.session = ActiveSupport::OrderedOptions.new }
12 end
final_session_config!(neo4j_config) click to toggle source
   # File lib/neo4j/railtie.rb
74 def final_session_config!(neo4j_config)
75   support_deprecated_session_configs!(neo4j_config)
76 
77   (neo4j_config[:session].empty? ? yaml_config_data : neo4j_config[:session]).dup.tap do |result|
78     result[:type] ||= URI(result[:url]).scheme if result[:url]
79   end
80 end
register_neo4j_cypher_logging(session_type, options) click to toggle source
    # File lib/neo4j/railtie.rb
126 def register_neo4j_cypher_logging(session_type, options)
127   return if @neo4j_cypher_logging_registered
128 
129   Neo4j::Core::Query.pretty_cypher = Neo4j::Config[:pretty_logged_cypher_queries]
130 
131   logger_proc = ->(message) do
132     (Neo4j::Config[:logger] ||= Rails.logger).debug message
133   end
134   Neo4j::Core::CypherSession::Adaptors::Base.subscribe_to_query(&logger_proc)
135   subscribe_to_session_type_logging!(session_type, options, logger_proc)
136 
137   @neo4j_cypher_logging_registered = true
138 end
setup!(neo4j_config = empty_config) click to toggle source
   # File lib/neo4j/railtie.rb
61 def setup!(neo4j_config = empty_config)
62   wait_for_connection = neo4j_config.wait_for_connection
63   type, url, path, options = final_session_config!(neo4j_config).values_at(:type, :url, :path, :options)
64   type ||= default_session_type
65   options ||= {}
66   register_neo4j_cypher_logging(type, options)
67 
68   Neo4j::SessionManager.open_neo4j_session(type,
69                                            url || path || default_session_path_or_url,
70                                            wait_for_connection,
71                                            options)
72 end
subscribe_to_session_type_logging!(session_type, options, logger_proc) click to toggle source
    # File lib/neo4j/railtie.rb
140 def subscribe_to_session_type_logging!(session_type, options, logger_proc)
141   SessionManager
142     .adaptor_class(session_type, options)
143     .send(
144       [:embedded, :embedded_db].include?(session_type.to_sym) ? :subscribe_to_transaction : :subscribe_to_request,
145       &logger_proc
146     )
147 end
support_deprecated_session_configs!(neo4j_config) click to toggle source
   # File lib/neo4j/railtie.rb
82 def support_deprecated_session_configs!(neo4j_config)
83   if neo4j_config.sessions.present?
84     ActiveSupport::Deprecation.warn('neo4j.config.sessions is deprecated, please use neo4j.config.session (not an array)')
85     neo4j_config[:session] = neo4j_config.sessions[0] if neo4j_config[:session].empty?
86   end
87 
88   %w(type path url options).each do |key|
89     value = neo4j_config.send("session_#{key}")
90     if value.present?
91       ActiveSupport::Deprecation.warn("neo4j.config.session_#{key} is deprecated, please use neo4j.config.session.#{key}")
92       neo4j_config[:session][key] = value
93     end
94   end
95 end
yaml_config_data() click to toggle source
    # File lib/neo4j/railtie.rb
111 def yaml_config_data
112   @yaml_config_data ||= if yaml_path
113                           HashWithIndifferentAccess.new(YAML.load(ERB.new(yaml_path.read).result)[Rails.env])
114                         else
115                           {}
116                         end
117 end
yaml_path() click to toggle source
    # File lib/neo4j/railtie.rb
119 def yaml_path
120   return unless defined?(Rails)
121   @yaml_path ||= %w(config/neo4j.yml config/neo4j.yaml).map do |path|
122     Rails.root.join(path)
123   end.detect(&:exist?)
124 end