Sha256: caaab3be51d1b3d3823eeec609ff3f92324b5a15e05b844d5b7369abe7b05912

Contents?: true

Size: 905 Bytes

Versions: 2

Compression:

Stored size: 905 Bytes

Contents

require 'cliutils/pretty-io'

module CLIUtils
  #  CLIMessenger Module
  #  Outputs coordinated messages to a variety of targets.
  module Messenging
    include PrettyIO

    # Hook that triggers when this module is included.
    # @param [Object] k The includer object
    # @return [void]
    def self.included(k)
      k.extend(self)
    end

    # Returns a default instance of LoggerDelegator that
    # delegates to STDOUT only.
    # @return [LoggerDelegator]
    def default_instance
      stdout_logger = Logger.new(STDOUT)
      stdout_logger.formatter = proc do |severity, datetime, progname, msg|
        send(severity.downcase, msg)
      end
      
      LoggerDelegator.new(stdout_logger)
    end

    # Singleton method to return (or initialize, if needed)
    # a LoggerDelegator.
    # @return [LoggerDelegator]
    def messenger
      @@messenger ||= default_instance
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cliutils-1.0.6 lib/cliutils/messenging.rb
cliutils-1.0.5 lib/cliutils/messenging.rb