term-ansicolor 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d6c71cb6e8330316827c42a78c14ff0be92b8bba
4
- data.tar.gz: 65305bffc1b48e42d974bd3e629e5a99c910ee7b
2
+ SHA256:
3
+ metadata.gz: 304878391ec13c534365a4a694d13b65d171f94062397af82fd34d1bbaa8bf3b
4
+ data.tar.gz: 6992e038df00f0d887afa1c0ff373f6d8b1d9a55d24620c427e4b9912808bb94
5
5
  SHA512:
6
- metadata.gz: 58373fab1285b42dfb4a5a9e56fa65077d7c63660518ecbab867241295d132fe02f64304f6c72a4e85e476b8364d1c69196f8bdebe45a557d0aa6efb6c30489c
7
- data.tar.gz: b206537a735980413b6648c3aa0ed822935c978aefbad1ee13be7710e193a479cffc6c6f1bc37b528a88530eb3e21a363f92058ee268f66cc52401aaf11e99cb
6
+ metadata.gz: 257d2e9c85eae190c42c82d88355fb93bad21d7ccd397069b1e41ce1a482284a65e357b4d38f3657be492a219a91b34658f353e0566a0eb608e2dc55200fcea9
7
+ data.tar.gz: 4dd918c597658bf3f8b5a7930f03fcf8eb61d21d9aa9357f24c25b53815587203d6449b53d9688b0ce8a54d872ffc9573fa6911dad62577f4f0ef0c880dc4fe7
@@ -2,8 +2,9 @@ rvm:
2
2
  - 2.0
3
3
  - 2.1
4
4
  - 2.2
5
- - 2.3.1
6
- - 2.4.1
5
+ - 2.3
6
+ - 2.4
7
+ - 2.5
7
8
  - ruby-head
8
9
  - jruby
9
10
  matrix:
data/CHANGES CHANGED
@@ -1,3 +1,6 @@
1
+ 2018-11-02 - 1.7.0 * Add movement commands and term_snow executable
2
+ 2017-03-24 - 1.6.0 * Implement HSL colors and methods based on that code
3
+ 2017-04-13 - 1.5.0 * Change to Apache 2.0 license
1
4
  2017-03-24 - 1.4.1 * Correct triple html color support
2
5
  2016-09-27 - 1.4.0 * Extend colorized strings with Term::ANSIColor
3
6
  2015-06-23 - 1.3.2 * Fix release 1.3.1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.7.0
@@ -24,6 +24,7 @@ for c in 4..7
24
24
  print_color c
25
25
  end
26
26
  puts
27
+ puts
27
28
 
28
29
  for c in 8..11
29
30
  print_color c
@@ -33,16 +34,16 @@ puts
33
34
  for c in 12..15
34
35
  print_color c
35
36
  end
36
- puts
37
37
 
38
38
  for c in 16..231
39
39
  (c - 16) % 6 == 0 and puts
40
+ (c - 16) % 36 == 0 and puts
40
41
  print_color c
41
42
  end
42
- puts
43
43
 
44
44
  for c in 232..255
45
45
  (c - 16) % 6 == 0 and puts
46
+ (c - 16) % 12 == 0 and puts
46
47
  print_color c
47
48
  end
48
49
  puts
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'term/ansicolor'
4
+ require 'tins/go'
5
+ include Tins::GO
6
+
7
+ class SnowFlake
8
+ include Term::ANSIColor
9
+ extend Term::ANSIColor
10
+
11
+ def initialize(x, y, shape: %w[ ❄ ❅ ❆ • • · · . . ])
12
+ @x, @y, @shape = x, y, Array(shape).sample
13
+ @shape.size != 1 and raise ArgumentError, "#@shape needs to be a character"
14
+ end
15
+
16
+ attr_accessor :x
17
+
18
+ attr_accessor :y
19
+
20
+ attr_accessor :shape
21
+
22
+ def to_s
23
+ move_to(y, x) { white on_black @shape }
24
+ end
25
+ end
26
+
27
+ opts = go 'n:s:'
28
+ new_snowflakes = (opts[?n] || 3).to_i
29
+ sleep_duration = (opts[?s] || 0.2).to_f
30
+
31
+ flakes = []
32
+ cycles = 0
33
+ wind = 0.5
34
+
35
+ loop do
36
+ print SnowFlake.hide_cursor, SnowFlake.on_black, SnowFlake.clear_screen
37
+
38
+ at_exit do
39
+ print SnowFlake.reset, SnowFlake.clear_screen, SnowFlake.move_home, SnowFlake.show_cursor
40
+ end
41
+
42
+ if cycles % (SnowFlake.terminal_lines / 3) == 0
43
+ wind, cycles = rand, 0
44
+ end
45
+ cycles += 1
46
+
47
+ flakes.reject! do |sf|
48
+ if rand > wind
49
+ sf.x -= 1
50
+ if sf.x <= 0
51
+ sf.x = SnowFlake.terminal_columns
52
+ end
53
+ else
54
+ sf.x == 1
55
+ if sf.x > SnowFlake.terminal_columns
56
+ sf.x = 1
57
+ end
58
+ end
59
+ sf.y += 1
60
+ sf.y > SnowFlake.terminal_lines
61
+ end
62
+
63
+ new_snowflakes.times do
64
+ flakes << SnowFlake.new(rand(1..SnowFlake.terminal_columns), 1)
65
+ end
66
+
67
+ print *flakes
68
+
69
+ sleep sleep_duration
70
+ rescue Interrupt
71
+ exit
72
+ end
@@ -14,6 +14,9 @@ module Term
14
14
  require 'term/ansicolor/attribute/color8'
15
15
  require 'term/ansicolor/attribute/intense_color8'
16
16
  require 'term/ansicolor/attribute/color256'
17
+ require 'term/ansicolor/movement'
18
+
19
+ include Term::ANSIColor::Movement
17
20
 
18
21
  # :stopdoc:
19
22
  ATTRIBUTE_NAMES = Attribute.named_attributes.map(&:name)
@@ -2,7 +2,7 @@ module Term
2
2
  module ANSIColor
3
3
  class Attribute
4
4
  class Text
5
- Attribute.set :clear, 0 # String#clear is already used to empty string in Ruby 1.9
5
+ Attribute.set :clear, 0 # String#clear already used in String
6
6
  Attribute.set :reset, 0 # synonym for :clear
7
7
  Attribute.set :bold, 1
8
8
  Attribute.set :dark, 2
@@ -12,8 +12,10 @@ module Term
12
12
  Attribute.set :underscore, 4 # synonym for :underline
13
13
  Attribute.set :blink, 5
14
14
  Attribute.set :rapid_blink, 6 # not widely implemented
15
- Attribute.set :negative, 7 # no reverse because of String#reverse
15
+ Attribute.set :reverse, 7 # String#reverse already used in String
16
+ Attribute.set :negative, 7 # synonym for :reverse
16
17
  Attribute.set :concealed, 8
18
+ Attribute.set :conceal, 8 # synonym for :concealed
17
19
  Attribute.set :strikethrough, 9 # not widely implemented
18
20
  end
19
21
  end
@@ -0,0 +1,108 @@
1
+ require 'tins/terminal'
2
+
3
+ module Term
4
+ module ANSIColor
5
+ module Movement
6
+ def terminal_lines
7
+ Tins::Terminal.lines
8
+ end
9
+
10
+ def terminal_columns
11
+ Tins::Terminal.columns
12
+ end
13
+
14
+ def move_to(line = 1, column = 1, string = nil, &block)
15
+ move_command("\e[#{line.to_i};#{column.to_i}H", string, &block)
16
+ end
17
+
18
+ def move_to_column(column = 1, string = nil, &block)
19
+ move_command("\e[#{column.to_i}G", string, &block)
20
+ end
21
+
22
+ def move_to_line(line = 1, string = nil, &block)
23
+ move_command("\e[#{line.to_i}f", string, &block)
24
+ end
25
+
26
+ def move_up(lines = 1, string = nil, &block)
27
+ move_command("\e[#{lines.to_i}A", string, &block)
28
+ end
29
+
30
+ def move_down(lines = 1, string = nil, &block)
31
+ move_command("\e[#{lines.to_i}B", string, &block)
32
+ end
33
+
34
+ def move_forward(columns = 1, string = nil, &block)
35
+ move_command("\e[#{columns.to_i}C", string, &block)
36
+ end
37
+
38
+ def move_backward(columns = 1, string = nil, &block)
39
+ move_command("\e[#{columns.to_i}D", string, &block)
40
+ end
41
+
42
+ def move_to_next_line(lines = 1, string = nil, &block)
43
+ move_command("\e[#{lines}E", string, &block)
44
+ end
45
+
46
+ def move_to_previous_line(lines = 1, string = nil, &block)
47
+ move_command("\e[#{lines}F", string, &block)
48
+ end
49
+
50
+ def move_home(string = nil, &block)
51
+ move_to(1, 1, string, &block)
52
+ end
53
+
54
+ def clear_screen(string = nil, &block)
55
+ erase_in_display(2, string, &block)
56
+ end
57
+
58
+ def erase_in_display(n = 0, string = nil, &block)
59
+ move_command("\e[#{n}J", string, &block)
60
+ end
61
+
62
+ def erase_in_line(n = 0, string = nil, &block)
63
+ move_command("\e[#{n}K", string, &block)
64
+ end
65
+
66
+ def scroll_up(pages = 1, string = nil, &block)
67
+ move_command("\e[#{pages}S", string, &block)
68
+ end
69
+
70
+ def scroll_down(pages = 1, string = nil, &block)
71
+ move_command("\e[#{pages}T", string, &block)
72
+ end
73
+
74
+ def save_position(string = nil, &block)
75
+ move_command("\e[s", string, &block)
76
+ end
77
+
78
+ def restore_position(string = nil, &block)
79
+ move_command("\e[u", string, &block)
80
+ end
81
+
82
+ def return_to_position(string = nil, &block)
83
+ save_position("") << move_command("", string, &block) << restore_position("")
84
+ end
85
+
86
+ def show_cursor(string = nil, &block)
87
+ move_command("\e[?25h", string, &block)
88
+ end
89
+
90
+ def hide_cursor(string = nil, &block)
91
+ move_command("\e[?25l", string, &block)
92
+ end
93
+
94
+ private
95
+
96
+ def move_command(move, string = nil)
97
+ if block_given?
98
+ move << yield.to_s
99
+ elsif string.respond_to?(:to_str)
100
+ move << string.to_str
101
+ elsif respond_to?(:to_str)
102
+ move << to_str
103
+ end
104
+ move
105
+ end
106
+ end
107
+ end
108
+ end
@@ -1,6 +1,6 @@
1
1
  module Term::ANSIColor
2
2
  # Term::ANSIColor version
3
- VERSION = '1.6.0'
3
+ VERSION = '1.7.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -1,24 +1,24 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: term-ansicolor 1.6.0 ruby lib
2
+ # stub: term-ansicolor 1.7.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "term-ansicolor".freeze
6
- s.version = "1.6.0"
6
+ s.version = "1.7.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2017-04-13"
11
+ s.date = "2018-11-02"
12
12
  s.description = "This library uses ANSI escape sequences to control the attributes of terminal output".freeze
13
13
  s.email = "flori@ping.de".freeze
14
- s.executables = ["term_cdiff".freeze, "term_colortab".freeze, "term_decolor".freeze, "term_display".freeze, "term_mandel".freeze]
15
- s.extra_rdoc_files = ["README.md".freeze, "lib/term/ansicolor.rb".freeze, "lib/term/ansicolor/attribute.rb".freeze, "lib/term/ansicolor/attribute/color256.rb".freeze, "lib/term/ansicolor/attribute/color8.rb".freeze, "lib/term/ansicolor/attribute/intense_color8.rb".freeze, "lib/term/ansicolor/attribute/text.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/ppm_reader.rb".freeze, "lib/term/ansicolor/rgb_color_metrics.rb".freeze, "lib/term/ansicolor/rgb_triple.rb".freeze, "lib/term/ansicolor/version.rb".freeze]
16
- s.files = [".gitignore".freeze, ".travis.yml".freeze, "CHANGES".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/term_cdiff".freeze, "bin/term_colortab".freeze, "bin/term_decolor".freeze, "bin/term_display".freeze, "bin/term_mandel".freeze, "examples/example.rb".freeze, "examples/lambda-red-plain.ppm".freeze, "examples/lambda-red.png".freeze, "examples/lambda-red.ppm".freeze, "lib/term/ansicolor.rb".freeze, "lib/term/ansicolor/.keep".freeze, "lib/term/ansicolor/attribute.rb".freeze, "lib/term/ansicolor/attribute/color256.rb".freeze, "lib/term/ansicolor/attribute/color8.rb".freeze, "lib/term/ansicolor/attribute/intense_color8.rb".freeze, "lib/term/ansicolor/attribute/text.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/ppm_reader.rb".freeze, "lib/term/ansicolor/rgb_color_metrics.rb".freeze, "lib/term/ansicolor/rgb_triple.rb".freeze, "lib/term/ansicolor/version.rb".freeze, "term-ansicolor.gemspec".freeze, "tests/ansicolor_test.rb".freeze, "tests/attribute_test.rb".freeze, "tests/hsl_triple_test.rb".freeze, "tests/ppm_reader_test.rb".freeze, "tests/rgb_color_metrics_test.rb".freeze, "tests/rgb_triple_test.rb".freeze, "tests/test_helper.rb".freeze]
14
+ s.executables = ["term_snow".freeze, "term_display".freeze, "term_decolor".freeze, "term_cdiff".freeze, "term_mandel".freeze, "term_colortab".freeze]
15
+ s.extra_rdoc_files = ["README.md".freeze, "lib/term/ansicolor.rb".freeze, "lib/term/ansicolor/attribute.rb".freeze, "lib/term/ansicolor/attribute/color256.rb".freeze, "lib/term/ansicolor/attribute/color8.rb".freeze, "lib/term/ansicolor/attribute/intense_color8.rb".freeze, "lib/term/ansicolor/attribute/text.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/movement.rb".freeze, "lib/term/ansicolor/ppm_reader.rb".freeze, "lib/term/ansicolor/rgb_color_metrics.rb".freeze, "lib/term/ansicolor/rgb_triple.rb".freeze, "lib/term/ansicolor/version.rb".freeze]
16
+ s.files = [".gitignore".freeze, ".travis.yml".freeze, "CHANGES".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/term_cdiff".freeze, "bin/term_colortab".freeze, "bin/term_decolor".freeze, "bin/term_display".freeze, "bin/term_mandel".freeze, "bin/term_snow".freeze, "examples/example.rb".freeze, "examples/lambda-red-plain.ppm".freeze, "examples/lambda-red.png".freeze, "examples/lambda-red.ppm".freeze, "lib/term/ansicolor.rb".freeze, "lib/term/ansicolor/.keep".freeze, "lib/term/ansicolor/attribute.rb".freeze, "lib/term/ansicolor/attribute/color256.rb".freeze, "lib/term/ansicolor/attribute/color8.rb".freeze, "lib/term/ansicolor/attribute/intense_color8.rb".freeze, "lib/term/ansicolor/attribute/text.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/movement.rb".freeze, "lib/term/ansicolor/ppm_reader.rb".freeze, "lib/term/ansicolor/rgb_color_metrics.rb".freeze, "lib/term/ansicolor/rgb_triple.rb".freeze, "lib/term/ansicolor/version.rb".freeze, "term-ansicolor.gemspec".freeze, "tests/ansicolor_test.rb".freeze, "tests/attribute_test.rb".freeze, "tests/hsl_triple_test.rb".freeze, "tests/ppm_reader_test.rb".freeze, "tests/rgb_color_metrics_test.rb".freeze, "tests/rgb_triple_test.rb".freeze, "tests/test_helper.rb".freeze]
17
17
  s.homepage = "http://flori.github.com/term-ansicolor".freeze
18
18
  s.licenses = ["Apache-2.0".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "Term-ansicolor - Ruby library that colors strings using ANSI escape sequences".freeze, "--main".freeze, "README.md".freeze]
20
20
  s.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze)
21
- s.rubygems_version = "2.6.11".freeze
21
+ s.rubygems_version = "2.7.7".freeze
22
22
  s.summary = "Ruby library that colors strings using ANSI escape sequences".freeze
23
23
  s.test_files = ["tests/ansicolor_test.rb".freeze, "tests/attribute_test.rb".freeze, "tests/hsl_triple_test.rb".freeze, "tests/ppm_reader_test.rb".freeze, "tests/rgb_color_metrics_test.rb".freeze, "tests/rgb_triple_test.rb".freeze, "tests/test_helper.rb".freeze]
24
24
 
@@ -104,8 +104,8 @@ class ANSIColorTest < Test::Unit::TestCase
104
104
  def test_attributes
105
105
  foo = 'foo'
106
106
  for a in Term::ANSIColor.attributes
107
- # skip clear for Ruby 1.9 which implements String#clear to empty the string
108
- if a != :clear || Term::ANSIColor.support?(:clear)
107
+ # skip :clear and :reverse b/c Ruby implements them on string
108
+ if a != :clear && a != :reverse || Term::ANSIColor.support?(:clear)
109
109
  refute_equal foo, foo_colored = foo.__send__(a)
110
110
  assert_equal foo, foo_colored.uncolor
111
111
  end
@@ -121,6 +121,24 @@ class ANSIColorTest < Test::Unit::TestCase
121
121
  assert_equal Term::ANSIColor.attributes, 'foo'.attributes
122
122
  end
123
123
 
124
+ def test_move_to
125
+ string_23_23 = "\e[23;23Hred"
126
+ assert_equal string_23_23, string.move_to(23, 23)
127
+ assert_equal string_23_23, Color.move_to(23, 23, string)
128
+ assert_equal string_23_23, Color.move_to(23, 23) { string }
129
+ assert_equal string_23_23, Term::ANSIColor.move_to(23, 23) { string }
130
+ assert_equal string_23_23, move_to(23, 23) { string }
131
+ end
132
+
133
+ def test_return_to_position
134
+ string_return = "\e[sred\e[u"
135
+ assert_equal string_return, string.return_to_position
136
+ assert_equal string_return, Color.return_to_position(string)
137
+ assert_equal string_return, Color.return_to_position { string }
138
+ assert_equal string_return, Term::ANSIColor.return_to_position { string }
139
+ assert_equal string_return, return_to_position { string }
140
+ end
141
+
124
142
  def test_coloring_string_like
125
143
  assert_equal "\e[31mred\e[0m", red(string_like)
126
144
  end
@@ -27,8 +27,8 @@ class HSLTripleTest < Test::Unit::TestCase
27
27
  assert_in_delta @pastel_green_hsl.hue, hsl.hue, 1e-1
28
28
  assert_in_delta @pastel_green_hsl.saturation, hsl.saturation, 1e-1
29
29
  assert_in_delta @pastel_green_hsl.lightness, hsl.lightness, 1e-1
30
- assert_match /hsl\(0\.0,0\.0%,53.3333.*?%\)/, @gray_rgb.to_hsl_triple.css
31
- assert_match /hsl\(120\.0.*?,58\.82.*?%,20.0%\)/, RGBTriple[ '#155115' ].to_hsl_triple.css
30
+ assert_match(/hsl\(0\.0,0\.0%,53.3333.*?%\)/, @gray_rgb.to_hsl_triple.css)
31
+ assert_match(/hsl\(120\.0.*?,58\.82.*?%,20.0%\)/, RGBTriple[ '#155115' ].to_hsl_triple.css)
32
32
  end
33
33
 
34
34
  def test_conversion_to_rgb
@@ -87,7 +87,7 @@ class RgbTripleTest < Test::Unit::TestCase
87
87
  rgb = RGBTriple.new(128, 0, 255)
88
88
  assert_equal 'rgb(128,0,255)', rgb.css
89
89
  assert_equal '#8000ff', RGBTriple.from_css('rgb(128,0,255)').html
90
- assert_match /rgb\(50\.19.*?%,0\.0%,100.0%\)/, rgb.css(percentage: true)
90
+ assert_match(/rgb\(50\.19.*?%,0\.0%,100.0%\)/, rgb.css(percentage: true))
91
91
  assert_equal '#8000ff', RGBTriple.from_css('rgb(50.19607843137255%,0.0%,100.0%)').html
92
92
  end
93
93
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: term-ansicolor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-13 00:00:00.000000000 Z
11
+ date: 2018-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -70,11 +70,12 @@ description: This library uses ANSI escape sequences to control the attributes o
70
70
  terminal output
71
71
  email: flori@ping.de
72
72
  executables:
73
- - term_cdiff
74
- - term_colortab
75
- - term_decolor
73
+ - term_snow
76
74
  - term_display
75
+ - term_decolor
76
+ - term_cdiff
77
77
  - term_mandel
78
+ - term_colortab
78
79
  extensions: []
79
80
  extra_rdoc_files:
80
81
  - README.md
@@ -85,6 +86,7 @@ extra_rdoc_files:
85
86
  - lib/term/ansicolor/attribute/intense_color8.rb
86
87
  - lib/term/ansicolor/attribute/text.rb
87
88
  - lib/term/ansicolor/hsl_triple.rb
89
+ - lib/term/ansicolor/movement.rb
88
90
  - lib/term/ansicolor/ppm_reader.rb
89
91
  - lib/term/ansicolor/rgb_color_metrics.rb
90
92
  - lib/term/ansicolor/rgb_triple.rb
@@ -103,6 +105,7 @@ files:
103
105
  - bin/term_decolor
104
106
  - bin/term_display
105
107
  - bin/term_mandel
108
+ - bin/term_snow
106
109
  - examples/example.rb
107
110
  - examples/lambda-red-plain.ppm
108
111
  - examples/lambda-red.png
@@ -115,6 +118,7 @@ files:
115
118
  - lib/term/ansicolor/attribute/intense_color8.rb
116
119
  - lib/term/ansicolor/attribute/text.rb
117
120
  - lib/term/ansicolor/hsl_triple.rb
121
+ - lib/term/ansicolor/movement.rb
118
122
  - lib/term/ansicolor/ppm_reader.rb
119
123
  - lib/term/ansicolor/rgb_color_metrics.rb
120
124
  - lib/term/ansicolor/rgb_triple.rb
@@ -151,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
155
  version: '0'
152
156
  requirements: []
153
157
  rubyforge_project:
154
- rubygems_version: 2.6.11
158
+ rubygems_version: 2.7.7
155
159
  signing_key:
156
160
  specification_version: 4
157
161
  summary: Ruby library that colors strings using ANSI escape sequences