asciinema.org/app/models/brush.rb
2013-08-15 23:05:09 +02:00

65 lines
889 B
Ruby

class Brush
def initialize(attributes = {})
@attributes = attributes.symbolize_keys
end
def ==(other)
fg == other.fg &&
bg == other.bg &&
bold? == other.bold? &&
underline? == other.underline? &&
inverse? == other.inverse? &&
blink? == other.blink?
end
def fg
code = attributes[:fg]
if code
if code < 8 && bold?
code += 8
end
end
code
end
def bg
code = attributes[:bg]
if code
if code < 8 && blink?
code += 8
end
end
code
end
def bold?
!!attributes[:bold]
end
def underline?
!!attributes[:underline]
end
def inverse?
!!attributes[:inverse]
end
def blink?
!!attributes[:blink]
end
def default?
fg.nil? && bg.nil? && !bold? && !underline? && !inverse? && !blink?
end
protected
attr_reader :attributes
end