lib/phobos.rb in phobos-1.3.0 vs lib/phobos.rb in phobos-1.4.0

- old
+ new

@@ -25,13 +25,13 @@ module Phobos class << self attr_reader :config, :logger attr_accessor :silence_log - def configure(yml_path) + def configure(configuration) ENV['RAILS_ENV'] = ENV['RACK_ENV'] ||= 'development' - @config = DeepStruct.new(YAML.load(ERB.new(File.read(File.expand_path(yml_path))).result)) + @config = DeepStruct.new(fetch_settings(configuration)) @config.class.send(:define_method, :producer_hash) { Phobos.config.producer&.to_hash } @config.class.send(:define_method, :consumer_hash) { Phobos.config.consumer&.to_hash } configure_logger logger.info { Hash(message: 'Phobos configured', env: ENV['RACK_ENV']) } end @@ -70,8 +70,16 @@ @ruby_kafka_logger.level = silence_log ? :fatal : ruby_kafka.level end @logger = Logging.logger[self] @logger.appenders = appenders + end + + private + + def fetch_settings(configuration) + return configuration.to_h if configuration.respond_to?(:to_h) + + YAML.load(ERB.new(File.read(File.expand_path(configuration))).result) end end end