INNER CODE UNIT · Ruby
self
busyloop/lolcat · lib/lolcat/lol.rb:69
def self.println(str, defaults={}, opts={})
opts.merge!(defaults)
chomped = str.sub!(/\n$/, "")
str.gsub! "\t", " "
opts[:animate] ? println_ani(str, opts, chomped) : println_plain(str, opts, chomped)
puts if chomped
end
private
def self.println_plain(str, defaults={}, opts={}, chomped)
opts.merge!(defaults)
set_mode(opts[:truecolor]) unless @paint_init
filtered = str.scan(ANSI_ESCAPE)
filtered.each_with_index do |c, i|
color = rainbow(opts[:freq], @os+i/opts[:spread])
if opts[:invert] then
print c[0], Paint.color(nil, color), c[1], "\e[49m"