lib/hanami/components/components.rb in hanami-1.0.0 vs lib/hanami/components/components.rb in hanami-1.1.0.beta1

- old
+ new

@@ -26,11 +26,17 @@ prepare do require 'hanami/logger' end resolve do |configuration| - Hanami::Logger.new(Hanami.environment.project_name, *configuration.logger) unless configuration.logger.nil? + if configuration.logger.is_a?(Array) + if configuration.logger.first.is_a?(::Logger) + configuration.logger.first + else + Hanami::Logger.new(Hanami.environment.project_name, *configuration.logger) + end + end end end # Check if code reloading is enabled # @@ -104,9 +110,38 @@ resolve do |configuration| if Components['model.bundled'] Hanami::Model.instance_variable_set(:@configuration, nil) if Hanami.code_reloading? Hanami::Model.configure(&configuration.model) + Hanami::Model.configuration + end + end + end + + # Tries to evaluate hanami-model configuration, if available for the project + # and it doesn't activate migrations logger + # + # @since 1.1.0 + # @api private + # + # @example With hanami-model + # Hanami::Components.resolve('model.configuration.no_logger') + # Hanami::Components['model.configuration.no_logger'].class # => Hanami::Model::Configuration + # + # @example Without hanami-model + # Hanami::Components.resolve('model.configuration.no_logger') + # Hanami::Components['model.configuration.no_logger'].class # => NilClass + register 'model.configuration.no_logger' do + requires 'model.bundled' + + prepare do + require 'stringio' + end + + resolve do |configuration| + if Components['model.bundled'] + Hanami::Model.configure(&configuration.model) + Hanami::Model.config.migrations_logger(StringIO.new) Hanami::Model.configuration end end end