You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/app/models/brush.rb

65 lines
889 B
Ruby

11 years ago
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?
11 years ago
end
def fg
code = attributes[:fg]
if code
if code < 8 && bold?
code += 8
end
end
code
11 years ago
end
def bg
code = attributes[:bg]
if code
if code < 8 && blink?
code += 8
end
end
code
11 years ago
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
11 years ago
end