ANSI::Chain was inspired by Kazuyoshi Tlacaelel's Isna library.
# File lib/ansi/chain.rb, line 10 def initialize(string) @string = string.to_s @codes = [] end
# File lib/ansi/chain.rb, line 22 def method_missing(s, *a, &b) if ANSI::CHART.key?(s) @codes << s self else super(s, *a, &b) end end
# File lib/ansi/chain.rb, line 32 def to_s if codes.empty? result = @string else result = Code.ansi(@string, *codes) codes.clear end result end
# File lib/ansi/chain.rb, line 43 def to_str to_s end