-
-
Save Shinpeim/4965540 to your computer and use it in GitHub Desktop.
Revisions
-
jewel12 created this gist
Feb 16, 2013 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,45 @@ # -*- coding: utf-8 -*- module StringsOfJewelve COLOR_NUMBERS = (0..7).to_a def to_jewelve return self.split('').map(&:to_random_colored).shuffle.join end def to_random_colored fg_color, bg_color = select_fg_bg_colors return "\e[7;3#{fg_color};4#{bg_color}m" + self + "\e[m" end def to_default_colored return "\e[39;49m" + self + "\e[m" end private def select_fg_bg_colors return COLOR_NUMBERS.sample(2) end end module JewelveIOExtention SPECIAL_MARKERS = (0..31) def write(str) if str.bytes.any? {|c| SPECIAL_MARKERS.include?(c)} super str else 10.times do sleep(0.1) super "\e[s" super str.to_jewelve super "\e[u" end super str.to_default_colored end end end String.send(:include, StringsOfJewelve) $stdout.extend(JewelveIOExtention)