lib/neo4j/railtie.rb in neo4j-3.0.0.alpha.3 vs lib/neo4j/railtie.rb in neo4j-3.0.0.alpha.4
- old
+ new
@@ -1,52 +1,64 @@
module Neo4j
- class Railtie < ::Rails::Railtie
+ class Railtie < ::Rails::Railtie
config.neo4j = ActiveSupport::OrderedOptions.new
# Add ActiveModel translations to the I18n load_path
initializer "i18n" do |app|
config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), '..', '..', '..', 'config', 'locales', '*.{rb,yml}')]
end
- # Starting Neo after :load_config_initializers allows apps to
- # register migrations in config/initializers
- initializer "neo4j.start", :after => :load_config_initializers do |app|
- cfg = app.config.neo4j
- # Set Rails specific defaults
+ class << self
+ def java_platform?
+ RUBY_PLATFORM =~ /java/
+ end
- cfg.session_type ||= :server_db
- cfg.session_path ||= "http://localhost:7474"
- cfg.sessions ||= []
+ def set_default_session(cfg)
+ cfg.session_type ||= :server_db
+ cfg.session_path ||= "http://localhost:7474"
+ cfg.sessions ||= []
- if cfg.sessions.empty?
- cfg.sessions << {type: cfg.session_type, path: cfg.session_path}
+ if cfg.sessions.empty?
+ cfg.sessions << {type: cfg.session_type, path: cfg.session_path}
+ end
end
- cfg.sessions.each do |session_opts|
- if !(RUBY_PLATFORM =~ /java/) && session_opts[:type] == :embedded_db
+
+ def start_embedded_session(session)
+ # See https://github.com/jruby/jruby/wiki/UnlimitedStrengthCrypto
+ security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
+ restricted_field = security_class.get_declared_field('isRestricted')
+ restricted_field.accessible = true
+ restricted_field.set nil, false
+ session.start
+ end
+
+ def open_neo4j_session(session_opts)
+ if !java_platform? && session_opts[:type] == :embedded_db
raise "Tried to start embedded Neo4j db without using JRuby (got #{RUBY_PLATFORM}), please run `rvm jruby`"
end
- puts "Create Neo4j Session #{session_opts[:type]}, path: #{session_opts[:path]}"
if (session_opts.key? :name)
session = Neo4j::Session.open_named(session_opts[:type], session_opts[:name], session_opts[:default], session_opts[:path])
else
session = Neo4j::Session.open(session_opts[:type], session_opts[:path])
end
- if session_opts[:type] == :embedded_db
+ start_embedded_session(session) if session_opts[:type] == :embedded_db
+ end
- # See https://github.com/jruby/jruby/wiki/UnlimitedStrengthCrypto
- security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
- restricted_field = security_class.get_declared_field('isRestricted')
- restricted_field.accessible = true
- restricted_field.set nil, false
+ end
- session.start
- end
- end
- #cfg.storage_path = "#{app.config.root}/db/neo4j-#{::Rails.env}" unless cfg.storage_path
- #Neo4j::Config.setup.merge!(cfg.to_hash)
+ # Starting Neo after :load_config_initializers allows apps to
+ # register migrations in config/initializers
+ initializer "neo4j.start", :after => :load_config_initializers do |app|
+ cfg = app.config.neo4j
+ # Set Rails specific defaults
+ Neo4j::Railtie.set_default_session(cfg)
+
+ cfg.sessions.each do |session_opts|
+ Neo4j::Railtie.open_neo4j_session(session_opts)
+ end
end
end
end