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