Module: SuperDiff::Csi
- Defined in:
- lib/super_diff/csi.rb,
lib/super_diff/csi/color.rb,
lib/super_diff/csi/document.rb,
lib/super_diff/csi/bold_sequence.rb,
lib/super_diff/csi/four_bit_color.rb,
lib/super_diff/csi/reset_sequence.rb,
lib/super_diff/csi/eight_bit_color.rb,
lib/super_diff/csi/colorized_document.rb,
lib/super_diff/csi/color_sequence_block.rb,
lib/super_diff/csi/uncolorized_document.rb,
lib/super_diff/csi/twenty_four_bit_color.rb
Defined Under Namespace
Classes: BoldSequence, Color, ColorSequenceBlock, ColorizedDocument, Document, EightBitColor, FourBitColor, ResetSequence, TwentyFourBitColor, UncolorizedDocument
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.color_enabled=(value) ⇒ Object
Sets the attribute color_enabled
16
17
18
|
# File 'lib/super_diff/csi.rb', line 16
def color_enabled=(value)
@color_enabled = value
end
|
Class Method Details
.already_colorized?(text) ⇒ Boolean
39
40
41
|
# File 'lib/super_diff/csi.rb', line 39
def self.already_colorized?(text)
text.match?(/\e\[\d+m/)
end
|
.color_enabled? ⇒ Boolean
23
24
25
|
# File 'lib/super_diff/csi.rb', line 23
def self.color_enabled?
@color_enabled
end
|
.colorize(*args, **opts, &block) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/super_diff/csi.rb', line 27
def self.colorize(*args, **opts, &block)
if color_enabled?
ColorizedDocument.new(*args, **opts, &block)
else
UncolorizedDocument.new(*args, **opts, &block)
end
end
|
.decolorize(text) ⇒ Object
35
36
37
|
# File 'lib/super_diff/csi.rb', line 35
def self.decolorize(text)
text.gsub(/\e\[\d+(?:;\d+)*m(.+?)\e\[0m/, '\1')
end
|
.inspect_colors_in(text) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/super_diff/csi.rb', line 43
def self.inspect_colors_in(text)
[FourBitColor, EightBitColor, TwentyFourBitColor].reduce(
text
) do |str, klass|
klass.sub_colorized_areas_in(str) do |area, color|
color_block = colorize("◼︎", color.to_foreground)
layer_indicator = (color.foreground? ? "(fg)" : "(bg)")
"#{color_block} #{layer_indicator} ❮#{area}❯"
end
end
end
|
.reset_sequence ⇒ Object
19
20
21
|
# File 'lib/super_diff/csi.rb', line 19
def self.reset_sequence
ResetSequence.new
end
|