class AsciiPaint::BlockString

Attributes

block_characters[R]

Public Class Methods

new(string) click to toggle source
# File lib/ascii_paint/block_string.rb, line 5
def initialize(string)
  @block_characters = string.chars.map { |char| BlockCharacter.new(char) }
end

Public Instance Methods

rows() click to toggle source
# File lib/ascii_paint/block_string.rb, line 9
def rows
  block_characters.inject([[]]) do |rows, block_char|
    if block_char.newline?
      rows << []
    else
      rows.last << block_char
    end
    rows
  end
end
to_a() click to toggle source
# File lib/ascii_paint/block_string.rb, line 20
def to_a
  rows.flat_map do |block_row|
    (0...BlockCharacter.height).map do |h|
      block_row.inject('') do |string_row, block_char|
        string_row + block_char.ascii[h]
      end
    end
  end
end