Class: Sus::Output::XTerm

Inherits:
Text
  • Object
show all
Defined in:
lib/sus/output/xterm.rb

Constant Summary collapse

COLORS =
{
	black: 0,
	red: 1,
	green: 2,
	yellow: 3,
	blue: 4,
	magenta: 5,
	cyan: 6,
	white: 7,
	default: 9,
}
ATTRIBUTES =
{
	normal: 0,
	bold: 1,
	bright: 1,
	faint: 2,
	italic: 3,
	underline: 4,
	blink: 5,
	reverse: 7,
	hidden: 8,
}

Constants inherited from Text

Text::INDENTATION

Constants included from Messages

Messages::FAILED_PREFIX, Messages::PASSED_PREFIX

Instance Attribute Summary

Attributes inherited from Text

#io, #styles

Instance Method Summary collapse

Methods inherited from Text

#[], #[]=, #append, #buffered, #indent, #indented, #initialize, #interactive?, #outdent, #puts, #width, #write

Methods included from Messages

#assert, #error, #error_prefix, #fail_prefix, #inform, #inform_prefix, #pass_prefix, #skip, #skip_prefix

Constructor Details

This class inherits a constructor from Sus::Output::Text

Instance Method Details

#colors?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/sus/output/xterm.rb', line 38

def colors?
	true
end

#resetObject



64
65
66
# File 'lib/sus/output/xterm.rb', line 64

def reset
	"\e[0m"
end

#sizeObject



42
43
44
# File 'lib/sus/output/xterm.rb', line 42

def size
	@io.winsize
end

#style(foreground, background = nil, *attributes) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/sus/output/xterm.rb', line 46

def style(foreground, background = nil, *attributes)
	tokens = []
	
	if foreground
		tokens << 30 + COLORS.fetch(foreground)
	end
	
	if background
		tokens << 40 + COLORS.fetch(background)
	end
	
	attributes.each do |attribute|
		tokens << ATTRIBUTES.fetch(attribute){attribute.to_i}
	end
	
	return "\e[#{tokens.join(';')}m"
end