module KamiText

Constants

VERSION

Public Class Methods

wrap(text, width_len = 24) click to toggle source
# File lib/kami_text.rb, line 4
def self.wrap(text, width_len = 24)
  text.map do |line|
    line =~ /(.*[ ○.]|.*[0-9])|.*  )/
    indent_len = $1.to_s.length

    first_line = line[0..width_len-1]
    remaining_width_len = width_len - indent_len

    remaining_lines = line[width_len..-1].to_s.scan(/.{1,#{remaining_width_len}}/).map do |remaining_line|
      remaining_line = remaining_line.ljust(remaining_width_len, ' ') if remaining_line.length < remaining_width_len
      remaining_line.rjust(width_len, ' ')
    end
    [first_line, remaining_lines].flatten
  end
end