lib/kosi/align.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true
require 'kosi/options'

# TableFormat for Terminal(Use Japanese Characters)
module Kosi
  # Align
  class Align
    attr_reader :value
    # Align Type
    module TYPE
      CENTER = :center
      RIGHT = :right
      LEFT = :left
      DEFAULT = LEFT
    end

    def initialize(options)
      @value = options[OptionKeys::ALIGN] || TYPE::DEFAULT
    end

    def apply(text, max_value, diff)
      pos = max_value - diff
      case @value
      when TYPE::CENTER
        text.center(pos)
      when TYPE::RIGHT
        text.rjust(pos)
      when TYPE::LEFT
        text.ljust(pos)
      end
    end
  end
end