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