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