lib/sord/logging.rb in sord-3.0.1 vs lib/sord/logging.rb in sord-4.0.0

- old
+ new

@@ -68,111 +68,112 @@ # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.generic(kind, header, msg, item) + def self.generic(kind, header, msg, item, **opts) return unless enabled_types.include?(kind) - if item - puts "#{header} (#{Rainbow(item.path).bold}) #{msg}" unless silent? + message = if item + "#{header} (#{Rainbow(item.path).bold}) #{msg}" else - puts "#{header} #{msg}" unless silent? + "#{header} #{msg}" end + puts message unless silent? - invoke_hooks(kind, msg, item) + invoke_hooks(kind, msg, item, **opts) end # Print a warning message. This should be used for things which require the # user's attention but do not prevent the process from stopping. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.warn(msg, item = nil) - generic(:warn, Rainbow('[WARN ]').yellow, msg, item) + def self.warn(msg, item = nil, **opts) + generic(:warn, Rainbow('[WARN ]').yellow, msg, item, **opts) end # Print an info message. This should be used for generic informational # messages which the user doesn't need to act on. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.info(msg, item = nil) - generic(:info, '[INFO ]', msg, item) + def self.info(msg, item = nil, **opts) + generic(:info, '[INFO ]', msg, item, **opts) end # Print a duck-typing message. This should be used when the YARD # documentation contains duck typing, which isn't supported by Sorbet, so # it is substituted for something different. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.duck(msg, item = nil) - generic(:duck, Rainbow('[DUCK ]').cyan, msg, item) + def self.duck(msg, item = nil, **opts) + generic(:duck, Rainbow('[DUCK ]').cyan, msg, item, **opts) end # Print an error message. This should be used for things which require the # current process to stop. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.error(msg, item = nil) - generic(:error, Rainbow('[ERROR]').red, msg, item) + def self.error(msg, item = nil, **opts) + generic(:error, Rainbow('[ERROR]').red, msg, item, **opts) end # Print an infer message. This should be used when the user should be told # that some information has been filled in or guessed for them, and that # information is likely correct. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.infer(msg, item = nil) - generic(:infer, Rainbow('[INFER]').blue, msg, item) + def self.infer(msg, item = nil, **opts) + generic(:infer, Rainbow('[INFER]').blue, msg, item, **opts) end # Print an omit message. This should be used as a special type of warning # to alert the user that there is some information missing, but this # information is not critical to the completion of the process. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.omit(msg, item = nil) - generic(:omit, Rainbow('[OMIT ]').magenta, msg, item) + def self.omit(msg, item = nil, **opts) + generic(:omit, Rainbow('[OMIT ]').magenta, msg, item, **opts) end # Print a done message. This should be used when a process completes # successfully. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.done(msg, item = nil) - generic(:done, Rainbow('[DONE ]').green, msg, item) + def self.done(msg, item = nil, **opts) + generic(:done, Rainbow('[DONE ]').green, msg, item, **opts) end # Invokes all registered hooks on the logger. # @param [Symbol] kind The kind of log message this is. # @param [String] msg The log message to write. # @param [YARD::CodeObjects::Base] item The CodeObject which this log # is associated with, if any. This is shown before the log message if it is # specified. # @return [void] - def self.invoke_hooks(kind, msg, item) + def self.invoke_hooks(kind, msg, item, **opts) @@hooks.each do |hook| - hook.(kind, msg, item) rescue nil + hook.(kind, msg, item, **opts) end end # Adds a hook to the logger. # @yieldparam [Symbol] kind The kind of log message this is.