Sus SourceSusOutputText

class Text

Definitions

def write(*arguments)

Print out the given arguments. When the argument is a symbol, look up the style and inject it into the io stream. When the argument is a proc/lambda, call it with self as the argument. When the argument is anything else, write it directly to the io.

Implementation

def write(*arguments)
	arguments.each do |argument|
		case argument
		when Symbol
			@io.write(self[argument])
		when Proc
			argument.call(self)
		else
			if argument.respond_to?(:print)
				argument.print(self)
			else
				@io.write(argument)
			end
		end
	end
end

def puts(*arguments)

Print out the arguments as per #print, followed by the reset sequence and a newline.

Implementation

def puts(*arguments)
	write(*arguments)
	@io.puts(self.reset)
end