diff --git a/config/initializers/01_app_config.rb b/config/initializers/01_app_config.rb index 067483d057..410f9fa337 100644 --- a/config/initializers/01_app_config.rb +++ b/config/initializers/01_app_config.rb @@ -1,3 +1,5 @@ +require_dependency 'carto/configuration' + module Cartodb def self.get_config(*config_chain) current = Cartodb.config @@ -14,7 +16,7 @@ module Cartodb return @config if @config begin - config_file_hash = YAML.load_file("#{Rails.root}/config/app_config.yml") + config_file_hash = Carto::Conf.new.app_config rescue => e raise "Missing or inaccessible config/app_config.yml: #{e.message}" end diff --git a/lib/carto/configuration.rb b/lib/carto/configuration.rb index 7a5014009f..413438e7b4 100644 --- a/lib/carto/configuration.rb +++ b/lib/carto/configuration.rb @@ -1,6 +1,10 @@ module Carto::Configuration def db_config - YAML.load(File.read(db_config_file)) + @@db_config ||= YAML.load(File.read(db_config_file)) + end + + def app_config + @@app_config = YAML.load_file(app_config_file) end private @@ -20,6 +24,10 @@ module Carto::Configuration File.join(config_files_root, 'config/database.yml') end end + + def app_config_file + "#{config_files_root}/config/app_config.yml" + end end # TODO: singleton diff --git a/script/compare_metadata.rb b/script/compare_metadata.rb index 706723dfa6..068a002904 100644 --- a/script/compare_metadata.rb +++ b/script/compare_metadata.rb @@ -17,8 +17,9 @@ if data.length > 0 exit 0 end -config = YAML.load(File.read('../config/app_config.yml')) -database = Carto::Conf.new.db_config +carto_conf = Carto::Conf.new +config = carto_conf.app_config +database = carto_conf.db_config RAILS_ENV = ENV['RAILS_ENV'] || 'production' diff --git a/services/synchronizer/lib/synchronizer/collection.rb b/services/synchronizer/lib/synchronizer/collection.rb index 151f26007f..106ebc015e 100644 --- a/services/synchronizer/lib/synchronizer/collection.rb +++ b/services/synchronizer/lib/synchronizer/collection.rb @@ -5,11 +5,10 @@ require_relative '../../../../app/models/log' require_relative '../../../../app/models/synchronization/member' require_relative '../../../../lib/resque/synchronization_jobs' require_relative '../../../../services/platform-limits/platform_limits' +require 'carto/configuration' unless defined? Cartodb - config = YAML.load_file( - File.join(File.dirname(__FILE__), '../../../../config/app_config.yml') - )[ENV['RAILS_ENV'] || 'development'] + config = Carto::Conf.new.app_config[ENV['RAILS_ENV'] || 'development'] Resque.redis = "#{config['redis']['host']}:#{config['redis']['port']}" end diff --git a/services/user-mover/config.rb b/services/user-mover/config.rb index 18e7363b4a..5cbc005581 100644 --- a/services/user-mover/config.rb +++ b/services/user-mover/config.rb @@ -6,8 +6,9 @@ module CartoDB class Config def self.load_config root = File.expand_path(File.dirname(__FILE__)) - config = YAML.load(File.read(File.join(root, '../../config/app_config.yml'))) - database = Carto::Conf.new.db_config + carto_config = Carto::Conf.new + config = carto_config.app_config + database = carto_config.db_config rails_env = ENV['RAILS_ENV'] || Rails.env || 'production' @config = { rails_env: rails_env,