29 lines
386 B
Ruby
29 lines
386 B
Ruby
class Cell
|
|
|
|
attr_reader :text, :brush
|
|
|
|
delegate :size, :to => :text
|
|
|
|
def initialize(text, brush)
|
|
@text = text
|
|
@brush = brush
|
|
end
|
|
|
|
def empty?
|
|
text.blank? && brush.default?
|
|
end
|
|
|
|
def ==(other)
|
|
text == other.text && brush == other.brush
|
|
end
|
|
|
|
def [](*args)
|
|
self.class.new(text[*args], brush)
|
|
end
|
|
|
|
def as_json(*)
|
|
[text, brush.as_json]
|
|
end
|
|
|
|
end
|