term-ansicolor 1.10.4 → 1.11.1

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
2
  SHA256:
3
- metadata.gz: d75f19d115fdee4233a120ece01a38b75c7f0cff14243e477def07b314f55b42
4
- data.tar.gz: 9a3c5f4ac0abbd01a552ce2e5358bd1d3b2825c392495c941209e71cdbfb8e07
3
+ metadata.gz: 35e1e389ded1bf66e7c0bfe078eac7953a411dcc334c817ed9c1261eb2094cf8
4
+ data.tar.gz: a1880a67537d5068df29c173d9196d9e29010657a14a867894cd3510d902323b
5
5
  SHA512:
6
- metadata.gz: '015294663f0738e6cbeed73b3aa34d7ff6a19a9bc13be6ab683a750956cc854dae0d7630e606ff298252142f35f10b3a4cd02592761d72403bfd2d3de845be82'
7
- data.tar.gz: 18741931918cf7c07192263ea683c69c7b6074d44572267e0d01d84d27a0f00ea66a0ae2d95ed2b96eee0e176bdf5f791f92d5aefb78a806ede47f2cc2a3b0ae
6
+ metadata.gz: 2565679ee465ac18d4ec23630c380d26cbd4f014027bfa04308b8c10f6334eaca322688e2630ae9844ea18c75ba99e54483f066ec34f4f133ebdec00e01f07b2
7
+ data.tar.gz: 9d61627c7c7ae986b4d13cc43174d490b0d89da349f4f1337cc0f36f678c39ff7244ec48309056e9b1f54560b5e9e7e27e69eab011f8611ffd011135530d1cfd
data/README.md CHANGED
@@ -16,7 +16,7 @@ Use rubygems to install the gem:
16
16
 
17
17
  The homepage of this library is located at
18
18
 
19
- * http://flori.github.com/term-ansicolor
19
+ * https://github.com/flori/term-ansicolor
20
20
 
21
21
  ## Examples
22
22
 
@@ -29,9 +29,12 @@ The following executables are provided with Term::ANSIColor:
29
29
  programs are installed it can handle a lot of other image file formats.
30
30
  * `term_decolor`: decolors any text file that was colored with ANSI escape sequences
31
31
  * `term_mandel`: displays the mandelbrot set in the terminal
32
+ * `term_plasma`: draws a plasma effect on the console, possibly animated and
33
+ refreshed every `-n seconds`.
32
34
  * `term_snow`: displays falling snow in the terminal using ANSI movement
33
35
  sequences.
34
36
 
37
+
35
38
  Additionally the file examples/example.rb in the source/gem-distribution shows
36
39
  how this library can be used.
37
40
 
data/Rakefile CHANGED
@@ -15,13 +15,15 @@ GemHadar do
15
15
 
16
16
  test_dir 'tests'
17
17
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage',
18
- 'tags', '.bundle', '.byebug_history', 'errors.lst'
18
+ 'tags', '.bundle', '.byebug_history', 'errors.lst', 'cscope.out'
19
+ package_ignore '.all_images.yml', '.tool-versions', '.gitignore', 'VERSION',
20
+ '.utilsrc', '.rspec', 'TODO',
21
+ *Dir.glob('.github/**/*', File::FNM_DOTMATCH)
19
22
 
20
23
  readme 'README.md'
21
24
  executables.merge Dir['bin/*'].map { |x| File.basename(x) }
22
25
 
23
26
  dependency 'tins', '~>1.0'
24
- dependency 'mize', '~>0.5'
25
27
  development_dependency 'simplecov'
26
28
  development_dependency 'test-unit'
27
29
  development_dependency 'utils'
data/bin/term_plasma ADDED
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tins/go'
4
+ include Tins::GO
5
+ require 'term/ansicolor'
6
+ include Term::ANSIColor
7
+ Term::ANSIColor.true_coloring = ENV['COLORTERM'] =~ /\A(truecolor|24bit)\z/
8
+ include Math
9
+
10
+ # Generates a palette of 256 colors based on sine waves
11
+ #
12
+ # @return [Array<Array<Integer>>] An array of arrays, each containing
13
+ # three integers representing the RGB values of a color.
14
+ def generate_palette
15
+ (0..255).map { |i|
16
+ [
17
+ 128 + 128 * sin(PI * i / 32.0),
18
+ 128 + 128 * sin(PI * i / 64.0),
19
+ 128 + 128 * sin(PI * i / 128.0),
20
+ ].map { _1.clamp(0, 255).round }
21
+ }
22
+ end
23
+
24
+ # Resets the terminal to its original state, and assigns width $w and height
25
+ # $h.
26
+ def full_reset
27
+ $w, $h = Tins::Terminal.cols, Tins::Terminal.lines
28
+ $h *= 2
29
+ print reset, clear_screen, move_home, hide_cursor
30
+ end
31
+
32
+ # Generates a screen based on a plasma.
33
+ #
34
+ # @param plasma [Array<Array<Integer>>] An array of arrays, each containing
35
+ # three integers representing the RGB values of a color.
36
+ # @return [String] The string representation of the screen, each character
37
+ # representing a pixel on the screen with the corresponding color.
38
+ def generate_screen(plasma)
39
+ screen = ''
40
+ 0.step($h - 1, 2) do |y|
41
+ 0.upto($w - 1) do |x|
42
+ screen << color(plasma[y][x]) + on_color(plasma[y + 1][x]) + ?▀
43
+ end
44
+ end
45
+ screen
46
+ end
47
+
48
+ # Generates a plasma generated based on sine waves
49
+ #
50
+ # @param now [Float] A value based on the current time in seconds
51
+ # @return [Array<Array<Integer>>] An array of arrays, each containing
52
+ # three integers representing the RGB values of a color.
53
+ def generate_plasma(now)
54
+ plasma = Array.new($h) { [ nil ] * $w }
55
+ 0.upto($h - 1) do |y|
56
+ 0.upto($w - 1) do |x|
57
+ x, y = x.to_f, y.to_f
58
+ color = (
59
+ 128.0 + (128.0 * sin((x / 7.0) - 3.0 * cos(now / 2.0))) +
60
+ 128.0 + (128.0 * sin((y / 13.0) - 2.0 * sin(now))) +
61
+ 128.0 + (128.0 * sin(hypot((x - $w / 3.0), (y - $h / 2.0)) / 5.0)) +
62
+ 128.0 + (128.0 * sin((hypot(x, y) / 5.0) - sin(now / 3.0)))
63
+ ) / 4.0
64
+ plasma[y][x] = $palette[(color + now).round % $palette.size]
65
+ end
66
+ end
67
+ plasma
68
+ end
69
+
70
+ $opts = go('n:')
71
+
72
+ $palette = generate_palette
73
+
74
+ begin
75
+ $full_reset = true
76
+ trap(:SIGWINCH) { $full_reset = true }
77
+
78
+ loop do
79
+ if $full_reset
80
+ $full_reset = false
81
+ full_reset
82
+ end
83
+
84
+ now = Time.now.to_f / ($opts[?n]&.to_f || 1)
85
+ plasma = generate_plasma(now)
86
+ print move_home, generate_screen(plasma), reset
87
+
88
+ if n = $opts[?n]&.to_f
89
+ sleep n
90
+ else
91
+ print move_to_column(1), erase_in_line, show_cursor
92
+ exit
93
+ end
94
+ end
95
+ rescue Interrupt
96
+ print reset, clear_screen, move_home, show_cursor
97
+ end
@@ -40,7 +40,7 @@ module Term
40
40
  Attribute.set :on_color4, 4, html: '#000080', background: true
41
41
  Attribute.set :on_color5, 5, html: '#800080', background: true
42
42
  Attribute.set :on_color6, 6, html: '#008080', background: true
43
- Attribute.set :on_color7, 7, html: '#c0c0c0'
43
+ Attribute.set :on_color7, 7, html: '#c0c0c0', background: true
44
44
 
45
45
  Attribute.set :on_color8, 8, html: '#808080', background: true
46
46
  Attribute.set :on_color9, 9, html: '#ff0000', background: true
@@ -49,12 +49,22 @@ module Term
49
49
  @__store__[name.to_sym]
50
50
  end
51
51
 
52
- def self.rgb_colors(options = {}, &block)
53
- colors = attributes.select(&:rgb_color?)
54
- if options.key?(:gray) && !options[:gray]
55
- colors = colors.reject(&:gray?)
52
+ class << self
53
+ def rgb_colors(options = {}, &block)
54
+ colors = attributes.select(&:rgb_color?)
55
+ if options.key?(:gray) && !options[:gray]
56
+ colors = colors.reject(&:gray?)
57
+ end
58
+ colors.each(&block)
59
+ end
60
+
61
+ def rgb_foreground_colors(options = {}, &block)
62
+ rgb_colors(options).reject(&:background?).each(&block)
63
+ end
64
+
65
+ def rgb_background_colors(options = {}, &block)
66
+ rgb_colors(options).select(&:background?).each(&block)
56
67
  end
57
- colors.each(&block)
58
68
  end
59
69
 
60
70
  def self.named_attributes(&block)
@@ -63,14 +73,12 @@ module Term
63
73
 
64
74
  def self.nearest_rgb_color(color, options = {})
65
75
  rgb = RGBTriple[color]
66
- colors = rgb_colors(options)
67
- colors.reject(&:background?).min_by { |c| c.distance_to(rgb, options) }
76
+ rgb_foreground_colors(options).min_by { |c| c.distance_to(rgb, options) }
68
77
  end
69
78
 
70
79
  def self.nearest_rgb_on_color(color, options = {})
71
80
  rgb = RGBTriple[color]
72
- colors = rgb_colors(options)
73
- colors.select(&:background?).min_by { |c| c.distance_to(rgb, options) }
81
+ rgb_background_colors(options).min_by { |c| c.distance_to(rgb, options) }
74
82
  end
75
83
 
76
84
  def self.true_color(color, options = {})
@@ -2,7 +2,7 @@ module Term
2
2
  module ANSIColor
3
3
  class HSLTriple
4
4
  def self.from_rgb_triple(rgb)
5
- ps = rgb.to_a.map { |x| x / 255.0 }
5
+ ps = [ rgb.red / 255.0, rgb.green / 255.0, rgb.blue / 255.0 ]
6
6
  p_min = ps.min
7
7
  p_max = ps.max
8
8
  p_red, p_green, p_blue = ps
@@ -15,7 +15,7 @@ module Term
15
15
  end
16
16
  result = ''
17
17
  if Term::ANSIColor.coloring?
18
- result = "\e]8;#{"id=#{id}" unless id.nil?};" << link.to_str << "\e\\"
18
+ result = "\e]8;#{"id=#{id}" unless id.nil?};".dup << link.to_str << "\e\\"
19
19
  end
20
20
  if block_given?
21
21
  result << yield.to_s
@@ -94,6 +94,7 @@ module Term
94
94
  private
95
95
 
96
96
  def move_command(move, string = nil)
97
+ move = move.dup
97
98
  if block_given?
98
99
  move << yield.to_s
99
100
  elsif string.respond_to?(:to_str)
@@ -6,8 +6,12 @@ module Term
6
6
  def initialize(io, options = {})
7
7
  @io = io
8
8
  @options = options
9
- @buffer = ''
10
- @true_coloring = options[:true_coloring]
9
+ @buffer = ''.dup
10
+ if options[:true_coloring]
11
+ @color = -> pixel { on_color Attribute.true_color(pixel, @options) }
12
+ else
13
+ @color = -> pixel { on_color Attribute.nearest_rgb_color(pixel, @options) }
14
+ end
11
15
  end
12
16
 
13
17
  def reset_io
@@ -18,46 +22,38 @@ module Term
18
22
  parse_header
19
23
  end
20
24
 
21
- def each_row
25
+ def rows
22
26
  reset_io
23
- @height.times do
24
- yield parse_row
27
+
28
+ Enumerator.new do |yielder|
29
+ @height.times do
30
+ yielder.yield parse_row
31
+ end
25
32
  end
26
33
  end
27
34
 
28
35
  def to_a
29
- enum_for(:each_row).to_a
36
+ rows.to_a
30
37
  end
31
38
 
32
39
  def to_s
33
- result = ''
34
- each_row do |row|
40
+ rows.map do |row|
35
41
  last_pixel = nil
36
- for pixel in row
42
+ row.map do |pixel|
37
43
  if pixel != last_pixel
38
- color = if @true_coloring
39
- Attribute.true_color(pixel, @options)
40
- else
41
- Attribute.nearest_rgb_color(pixel, @options)
42
- end
43
- result << on_color(color)
44
44
  last_pixel = pixel
45
+ @color.(pixel) << ' '
46
+ else
47
+ ' '
45
48
  end
46
- result << ' '
47
- end
48
- result << reset << "\n"
49
- end
50
- result
49
+ end.join << reset << ?\n
50
+ end.join
51
51
  end
52
52
 
53
53
  private
54
54
 
55
55
  def parse_row
56
- row = []
57
- @width.times do
58
- row << parse_next_pixel
59
- end
60
- row
56
+ @width.times.map { parse_next_pixel }
61
57
  end
62
58
 
63
59
  def parse_next_pixel
@@ -19,16 +19,16 @@ module Term
19
19
  if v <= 0.04045
20
20
  v / 12
21
21
  else
22
- ( (v + 0.055) / 1.055) ** 2.4
22
+ ( (v + 0.055) / 1.055 ) ** 2.4
23
23
  end
24
24
  end
25
25
 
26
26
  def normalize_rgb_triple(rgb_triple)
27
27
  [
28
- rgb_triple.red,
29
- rgb_triple.green,
30
- rgb_triple.blue
31
- ].map { |v| normalize(v) }
28
+ normalize(rgb_triple.red),
29
+ normalize(rgb_triple.green),
30
+ normalize(rgb_triple.blue),
31
+ ]
32
32
  end
33
33
  end
34
34
  end
@@ -59,7 +59,11 @@ module Term
59
59
  end
60
60
 
61
61
  def initialize(red, green, blue)
62
- @values = [ red, green, blue ].map! { |v| v.clamp(0, 0xff) }
62
+ @values = [
63
+ red.clamp(0, 0xff),
64
+ green.clamp(0, 0xff),
65
+ blue.clamp(0, 0xff),
66
+ ]
63
67
  end
64
68
 
65
69
  def red
@@ -99,14 +103,12 @@ module Term
99
103
  end
100
104
 
101
105
  def html
102
- s = '#'
103
- @values.each { |c| s << '%02x' % c }
104
- s
106
+ '#%02x%02x%02x' % @values
105
107
  end
106
108
 
107
109
  def css(percentage: false)
108
110
  if percentage
109
- "rgb(%s%%,%s%%,%s%%)" % @values.map { |v| 100.0 * v / 255 }
111
+ "rgb(%s%%,%s%%,%s%%)" % percentages
110
112
  else
111
113
  "rgb(%u,%u,%u)" % @values
112
114
  end
@@ -1,6 +1,6 @@
1
1
  module Term::ANSIColor
2
2
  # Term::ANSIColor version
3
- VERSION = '1.10.4'
3
+ VERSION = '1.11.1'
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:
@@ -64,14 +64,14 @@ module Term
64
64
  elsif respond_to?(:to_str)
65
65
  to_str.gsub(COLORED_REGEXP, '')
66
66
  else
67
- ''
67
+ ''.dup
68
68
  end.extend(Term::ANSIColor)
69
69
  end
70
70
 
71
71
  alias uncolored uncolor
72
72
 
73
73
  def apply_code(code, string = nil, &block)
74
- result = ''
74
+ result = ''.dup
75
75
  result << "\e[#{code}m" if Term::ANSIColor.coloring?
76
76
  if block_given?
77
77
  result << yield.to_s
@@ -112,7 +112,7 @@ module Term
112
112
 
113
113
  class << self
114
114
  # Returns an array of all Term::ANSIColor attributes as symbols.
115
- memoize method: def term_ansicolor_attributes
115
+ def term_ansicolor_attributes
116
116
  ::Term::ANSIColor::Attribute.attributes.map(&:name)
117
117
  end
118
118
 
@@ -1,32 +1,31 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: term-ansicolor 1.10.4 ruby lib
2
+ # stub: term-ansicolor 1.11.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "term-ansicolor".freeze
6
- s.version = "1.10.4".freeze
6
+ s.version = "1.11.1".freeze
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 = "2024-07-15"
11
+ s.date = "2024-08-01"
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, "term_snow".freeze]
14
+ s.executables = ["term_cdiff".freeze, "term_colortab".freeze, "term_decolor".freeze, "term_display".freeze, "term_mandel".freeze, "term_plasma".freeze, "term_snow".freeze]
15
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/attribute/underline.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/hyperlink.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 = [".all_images.yml".freeze, ".gitignore".freeze, ".utilsrc".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/attribute/underline.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/hyperlink.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/hyperlink_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]
16
+ s.files = ["CHANGES".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/term_cdiff".freeze, "bin/term_colortab".freeze, "bin/term_decolor".freeze, "bin/term_display".freeze, "bin/term_mandel".freeze, "bin/term_plasma".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/attribute/underline.rb".freeze, "lib/term/ansicolor/hsl_triple.rb".freeze, "lib/term/ansicolor/hyperlink.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/hyperlink_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 = "https://github.com/flori/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
- s.rubygems_version = "3.5.11".freeze
20
+ s.rubygems_version = "3.5.16".freeze
21
21
  s.summary = "Ruby library that colors strings using ANSI escape sequences".freeze
22
22
  s.test_files = ["tests/ansicolor_test.rb".freeze, "tests/attribute_test.rb".freeze, "tests/hsl_triple_test.rb".freeze, "tests/hyperlink_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]
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.16.0".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.16.1".freeze])
27
27
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
28
28
  s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
29
29
  s.add_development_dependency(%q<utils>.freeze, [">= 0".freeze])
30
30
  s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.0".freeze])
31
- s.add_runtime_dependency(%q<mize>.freeze, ["~> 0.5".freeze])
32
31
  end
@@ -195,7 +195,7 @@ class ANSIColorTest < Test::Unit::TestCase
195
195
  end
196
196
 
197
197
  def test_frozen
198
- string = 'foo'
198
+ string = 'foo'.dup
199
199
  red = string.red
200
200
  string.extend(Term::ANSIColor).freeze
201
201
  assert string.frozen?
@@ -51,7 +51,7 @@ class HyperlinkTest < Test::Unit::TestCase
51
51
  end
52
52
 
53
53
  def test_with_stringy_self
54
- string = 'foo'
54
+ string = 'foo'.dup
55
55
  string.extend Term::ANSIColor
56
56
  assert_equal "\e]8;;#@link\e\\foo\e]8;;\e\\", string.hyperlink(@link)
57
57
  end
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.10.4
4
+ version: 1.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-15 00:00:00.000000000 Z
11
+ date: 2024-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.16.0
19
+ version: 1.16.1
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.16.0
26
+ version: 1.16.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: simplecov
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.0'
83
- - !ruby/object:Gem::Dependency
84
- name: mize
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.5'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.5'
97
83
  description: This library uses ANSI escape sequences to control the attributes of
98
84
  terminal output
99
85
  email: flori@ping.de
@@ -103,6 +89,7 @@ executables:
103
89
  - term_decolor
104
90
  - term_display
105
91
  - term_mandel
92
+ - term_plasma
106
93
  - term_snow
107
94
  extensions: []
108
95
  extra_rdoc_files:
@@ -122,20 +109,17 @@ extra_rdoc_files:
122
109
  - lib/term/ansicolor/rgb_triple.rb
123
110
  - lib/term/ansicolor/version.rb
124
111
  files:
125
- - ".all_images.yml"
126
- - ".gitignore"
127
- - ".utilsrc"
128
112
  - CHANGES
129
113
  - COPYING
130
114
  - Gemfile
131
115
  - README.md
132
116
  - Rakefile
133
- - VERSION
134
117
  - bin/term_cdiff
135
118
  - bin/term_colortab
136
119
  - bin/term_decolor
137
120
  - bin/term_display
138
121
  - bin/term_mandel
122
+ - bin/term_plasma
139
123
  - bin/term_snow
140
124
  - examples/example.rb
141
125
  - examples/lambda-red-plain.ppm
@@ -188,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
172
  - !ruby/object:Gem::Version
189
173
  version: '0'
190
174
  requirements: []
191
- rubygems_version: 3.5.11
175
+ rubygems_version: 3.5.16
192
176
  signing_key:
193
177
  specification_version: 4
194
178
  summary: Ruby library that colors strings using ANSI escape sequences
data/.all_images.yml DELETED
@@ -1,27 +0,0 @@
1
- dockerfile: |-
2
- RUN apk add --no-cache build-base git bash
3
- RUN bash <<NUR
4
- if [[ "$(ruby -e 'print RUBY_VERSION')" > '3' ]]
5
- then
6
- gem update --system
7
- gem install gem_hadar bundler
8
- else
9
- gem install gem_hadar
10
- gem install bundler -v 2.4.22
11
- fi
12
- NUR
13
-
14
- script: &script |-
15
- echo -e "\e[1m"
16
- ruby -v
17
- echo -e "\e[0m"
18
- bundle
19
- rake test
20
-
21
- images:
22
- ruby:3.3-alpine: *script
23
- ruby:3.2-alpine: *script
24
- ruby:3.1-alpine: *script
25
- ruby:3.0-alpine: *script
26
- ruby:2.7-alpine: *script
27
- ruby:2.6-alpine: *script
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- .*.sw[pon]
2
- .bundle
3
- .byebug_history
4
- .rvmrc
5
- Gemfile.lock
6
- coverage
7
- errors.lst
8
- pkg
9
- tags
data/.utilsrc DELETED
@@ -1,26 +0,0 @@
1
- # vim: set ft=ruby:
2
-
3
- search do
4
- prune_dirs /\A(\.svn|\.git|CVS|tmp|tags|coverage|pkg)\z/
5
- skip_files /(\A\.|\.sw[pon]\z|\.(log|fnm|jpg|jpeg|png|pdf|svg)\z|tags|~\z)/i
6
- end
7
-
8
- discover do
9
- prune_dirs /\A(\.svn|\.git|CVS|tmp|tags|coverage|pkg)\z/
10
- skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
11
- binary false
12
- end
13
-
14
- strip_spaces do
15
- prune_dirs /\A(\..*|CVS|pkg)\z/
16
- skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
17
- end
18
-
19
- probe do
20
- test_framework :"test-unit"
21
- end
22
-
23
- ssh_tunnel do
24
- terminal_multiplexer :tmux
25
- end
26
-
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.10.4