term-ansicolor 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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