class BitmapCompiler::Core::Bitmap

Bitmap entity

Constants

MAX_WIDTH
MIN_WIDTH
STANDARD_COLOR

Attributes

cells[R]
height[R]
width[R]

Public Class Methods

new(width, height, cells: nil) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 11
def initialize(width, height, cells: nil)
  @height = Integer(height)
  @width = Integer(width)
  @cells = cells

  clear if cells.nil?
end

Public Instance Methods

change_pixel(row, column, color) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 19
def change_pixel(row, column, color)
  return false unless valid_coordinate?(row, column)

  cells[row - 1][column - 1] = color
end
clear() click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 25
def clear
  @cells = initialize_matrix
end
initialize_matrix() click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 29
def initialize_matrix
  Array.new(width) { Array.new(height) { STANDARD_COLOR } }
end
print() click to toggle source
valid_column_index?(column) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 59
def valid_column_index?(column)
  column.between?(1, height)
end
valid_coordinate?(row, column) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 55
def valid_coordinate?(row, column)
  valid_row_index?(row) && valid_column_index?(column)
end
valid_horizontal_line_coordinates?(column, start_row, end_row) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 50
def valid_horizontal_line_coordinates?(column, start_row, end_row)
  valid_row_index?(end_row) && valid_row_index?(start_row) &&
    valid_column_index?(column) && start_row <= end_row
end
valid_row_index?(row) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 63
def valid_row_index?(row)
  row.between?(1, width)
end
valid_vertical_line_coordinates?(row, start_column, end_column) click to toggle source
# File lib/bitmap_compiler/core/bitmap.rb, line 45
def valid_vertical_line_coordinates?(row, start_column, end_column)
  valid_row_index?(row) && valid_column_index?(start_column) &&
    valid_column_index?(end_column) && start_column <= end_column
end