class Mendel::Visualizers::Base

Constants

InvalidListCount
ListsTooLarge
UnknownPointType

Attributes

combiner[RW]
grid[RW]
list1[RW]
list2[RW]

Public Class Methods

max_list_length() click to toggle source
# File lib/mendel/visualizers/base.rb, line 7
def self.max_list_length
  10 # To be decided
end
new(combiner) click to toggle source
# File lib/mendel/visualizers/base.rb, line 11
def initialize(combiner)
  self.combiner = combiner
  combiner.add_observer(self)
  lists = combiner.lists
  check_list_validity(lists)
  self.list1, self.list2 = lists
  self.grid = Array.new(list1.size) { Array.new(list2.size, [:unscored]) }
end

Public Instance Methods

update(status, combo) click to toggle source
# File lib/mendel/visualizers/base.rb, line 20
def update(status, combo)
  y, x  = combo.fetch('coordinates')
  score = combo.fetch('score')
  grid[y][x] = [status, score]
end

Private Instance Methods

check_list_validity(lists) click to toggle source
# File lib/mendel/visualizers/base.rb, line 30
def check_list_validity(lists)
  raise InvalidListCount, "Can only graph in 2 dimensions" unless lists.length == 2
  raise ListsTooLarge,    "Need to fit on screen"          if lists.any? {|l| l.length > self.class.max_list_length }
end