Sha256: 8d5c1ce833226899df39ffa38cc62576b627efccb6dfaf0834331041185c4e55

Contents?: true

Size: 789 Bytes

Versions: 1

Compression:

Stored size: 789 Bytes

Contents

module Lumos
  module Formatters
    class Base
      include BaseChopper
      include BaseHorizontal

      attr_reader :message, :delimiter, :padding, :length

      def initialize(options = {})
        @message   = unwrap_message options.fetch(:message)
        @delimiter = options.fetch(:delimiter, "#").to_s
        @padding   = options.fetch(:padding, 1).to_i.abs
        @length    = options.fetch(:length, 70).to_i.abs
      end

      def message_length
        message.to_s.size
      end

    private

      def unwrap_message(message)
        object_id_hex = (message.object_id << 1).to_s(16)
        message.to_s.include?(object_id_hex) ? message.inspect : message.to_s
      end


      def vertical_padding
        " " * padding if padding > 0
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lumos-0.0.1 lib/lumos/formatters/base.rb