Sha256: 53461be5ff5db5691acf71b57bd557f019a251bd720251360cd9fd2b98ab3b67

Contents?: true

Size: 628 Bytes

Versions: 11

Compression:

Stored size: 628 Bytes

Contents

module CutePrint
  # @api private
  class InlineLabeler

    def self.label(formatter, width, label, value)
      new(formatter, width, label, value).labeled
    end

    def initialize(formatter, width, label, value)
      @formatter = formatter
      @width = width
      @label = label
      @value = value
    end

    def labeled
      [@label.rstrip + "\n"] + indented_lines
    end

    private

    INDENT = '  '
    private_constant :INDENT

    def indented_lines
      lines.map do |line|
        INDENT + line
      end
    end

    def lines
      @formatter.format(@width - INDENT.size, @value)
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
cute_print-1.4.0 lib/cute_print/inline_labeler.rb
cute_print-1.3.0 lib/cute_print/inline_labeler.rb
cute_print-1.2.0 lib/cute_print/inline_labeler.rb
cute_print-1.1.4 lib/cute_print/inline_labeler.rb
cute_print-1.1.3 lib/cute_print/inline_labeler.rb
cute_print-1.1.2 lib/cute_print/inline_labeler.rb
cute_print-1.1.1 lib/cute_print/inline_labeler.rb
cute_print-1.1.0 lib/cute_print/inline_labeler.rb
cute_print-1.0.1 lib/cute_print/inline_labeler.rb
cute_print-1.0.0 lib/cute_print/inline_labeler.rb
cute_print-0.4.0 lib/cute_print/inline_labeler.rb