Class: Foruiman::ANSI::Styles
- Inherits:
-
Object
- Object
- Foruiman::ANSI::Styles
- Defined in:
- lib/foruiman/ansi.rb
Overview
A bounded style snapshot makes each retained row independently renderable.
Instance Method Summary collapse
- #apply(sequence) ⇒ Object
-
#initialize ⇒ Styles
constructor
A new instance of Styles.
- #prefix ⇒ Object
Constructor Details
#initialize ⇒ Styles
Returns a new instance of Styles.
9 10 11 |
# File 'lib/foruiman/ansi.rb', line 9 def initialize @values = {} end |
Instance Method Details
#apply(sequence) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/foruiman/ansi.rb', line 13 def apply(sequence) values = sequence.delete_prefix("\e[").delete_suffix("m").split(";") values = ["0"] if values.empty? until values.empty? value = values.shift code = value.to_i case code when 0 then @values.clear when 1, 2 then @values[:intensity] = value when 3 then @values[:italic] = value when 4, 21 then @values[:underline] = value when 5, 6 then @values[:blink] = value when 7 then @values[:inverse] = value when 8 then @values[:conceal] = value when 9 then @values[:strike] = value when 22 then @values.delete(:intensity) when 23 then @values.delete(:italic) when 24 then @values.delete(:underline) when 25 then @values.delete(:blink) when 27 then @values.delete(:inverse) when 28 then @values.delete(:conceal) when 29 then @values.delete(:strike) when 30..37, 90..97 then @values[:foreground] = value when 40..47, 100..107 then @values[:background] = value when 38, 48 then color(code, value, values) when 39 then @values.delete(:foreground) when 49 then @values.delete(:background) end end end |
#prefix ⇒ Object
44 45 46 |
# File 'lib/foruiman/ansi.rb', line 44 def prefix @values.empty? ? "" : "\e[#{@values.values.join(';')}m" end |