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