Sha256: 388e16233057090593181f9a1d6268d939b3ce9a43e817ff2950926b009148ca

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module TTY
  class Logger
    module Handlers
      module Base
        # Coerce formatter name into constant
        #
        # @api private
        def coerce_formatter(name)
          case name
          when String, Symbol
            const_name = if Formatters.const_defined?(name.upcase)
                           name.upcase
                         else
                           name.capitalize
                         end
            Formatters.const_get(const_name)
          when Class
            name
          else
            raise_formatter_error(name)
          end
        rescue NameError
          raise_formatter_error(name)
        end

        # Raise error when unknown formatter name
        #
        # @api private
        def raise_formatter_error(name)
          raise Error, "Unrecognized formatter name '#{name.inspect}'"
        end

        # Metadata for the log event
        #
        # @return [Array[Symbol]]
        #
        # @api private
        def metadata
          if config.metadata.include?(:all)
            [:pid, :date, :time, :file]
          else
            config.metadata
          end
        end

        # Format path from event metadata
        #
        # @return [String]
        #
        # @api private
        def format_filepath(event)
          "%s:%d:in`%s`" % [event.metadata[:path], event.metadata[:lineno],
                            event.metadata[:method]]
        end
      end # Base
    end # Handlers
  end # Logger
end # TTY

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tty-logger-0.1.0 lib/tty/logger/handlers/base.rb