term-ansicolor 1.10.4 → 1.11.1

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
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