class Bitmapped::Commands::HorizontalLineCommand

Public Instance Methods

command_id() click to toggle source
# File lib/bitmapped/commands/horizontal_line_command.rb, line 10
def command_id
  "H"
end
process_command(bitmap, input) click to toggle source
# File lib/bitmapped/commands/horizontal_line_command.rb, line 14
def process_command(bitmap, input)
  Validators::ValidateBitmapInitialised.parse_and_validate(bitmap)
  column, start, finish, color = Validators::ValidateSegmentInput.parse_and_validate(input)
  horizontal_command(bitmap, column, start, finish, color)
end

Private Instance Methods

horizontal_command(bitmap, x, y, row, color) click to toggle source
# File lib/bitmapped/commands/horizontal_line_command.rb, line 21
def horizontal_command(bitmap, x, y, row, color)
  raise InvalidCoordinatesError unless (0 < row && row <= bitmap.rows)
  x, y = coordinates_to_array_indexes(bitmap, x, y)
  row = row - 1
  bitmap.pixels[row][x..y] = Array.new((x..y).size, color)
end