lib/dryad/consul/railtie.rb in dryad-consul-0.2.7 vs lib/dryad/consul/railtie.rb in dryad-consul-0.3.0
- old
+ new
@@ -1,21 +1,30 @@
require "rails"
require "dryad"
module Dryad
module Consul
- class Railtie < Rails::Railtie
+ class DBConfigObserver < ConfigObserver
+ def update_self(config_desc)
+ ActiveRecord::Base.configurations = YAML.load(ERB.new(config_desc.payload).result)
+ ActiveRecord::Base.establish_connection(Rails.env.to_sym)
+ end
+ end
+
+ class Railtie < ::Rails::Railtie
initializer "dryad_consul.set_consul" do
ActiveSupport.on_load(:dryad_consul) do
Dryad::Consul.configure_consul(Dryad.configuration)
end
end
initializer "dryad_consul.update_active_record_connection" do
config.after_initialize do
db_path = "#{Dryad.configuration.namespace}/#{Dryad.configuration.group}/database.yml"
+ observer = ::Dryad::Consul::DBConfigObserver.new
begin
- db_config = Dryad::Consul::ConfigProvider.load(db_path)
+ db_config = Dryad::Consul::ConfigProvider.instance.load(db_path, observer)
+ raise Dryad::Core::ConfigurationNotFound, db_path
ActiveRecord::Base.configurations = YAML.load(ERB.new(db_config.payload).result)
ActiveRecord::Base.establish_connection(Rails.env.to_sym)
rescue Dryad::Core::ConfigurationNotFound => e
raise e
rescue Exception => e