term-ansicolor 1.7.1 → 1.10.4

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: 82f14903202a3f6e83de02c8c2b17784664a57a5cce01527a7d11337ec6a2e1f
4
- data.tar.gz: c5ea599eacc7486ba0688dad5b3263b7aff4e435c5b1af9d93bd519b135162cb
3
+ metadata.gz: d75f19d115fdee4233a120ece01a38b75c7f0cff14243e477def07b314f55b42
4
+ data.tar.gz: 9a3c5f4ac0abbd01a552ce2e5358bd1d3b2825c392495c941209e71cdbfb8e07
5
5
  SHA512:
6
- metadata.gz: 12d9a379cf7b8459f9bafdda098d1ea6b967bb00ad643fd7c5395c9332c958bdca0da8baf7748f3e787359fc5f67cbaaecb8d669a864b47047965144ba536cd6
7
- data.tar.gz: cd51989c8ec30cdfc6dc3ce79e1e8c0e322473cefde6f2b2d757bbce2d76e79e14e5bb551d65fddd46d7a96f9404b89d95bcb3da96101125fb4f1af908276f27
6
+ metadata.gz: '015294663f0738e6cbeed73b3aa34d7ff6a19a9bc13be6ab683a750956cc854dae0d7630e606ff298252142f35f10b3a4cd02592761d72403bfd2d3de845be82'
7
+ data.tar.gz: 18741931918cf7c07192263ea683c69c7b6074d44572267e0d01d84d27a0f00ea66a0ae2d95ed2b96eee0e176bdf5f791f92d5aefb78a806ede47f2cc2a3b0ae
data/.all_images.yml ADDED
@@ -0,0 +1,27 @@
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 CHANGED
@@ -4,5 +4,6 @@
4
4
  .rvmrc
5
5
  Gemfile.lock
6
6
  coverage
7
+ errors.lst
7
8
  pkg
8
9
  tags
data/.utilsrc ADDED
@@ -0,0 +1,26 @@
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/README.md CHANGED
@@ -22,13 +22,15 @@ The homepage of this library is located at
22
22
 
23
23
  The following executables are provided with Term::ANSIColor:
24
24
 
25
- * `cdiff`: colors a diff patch
26
- * `decolor`: decolors any text file that was colored with ANSI escape sequences
27
- * `colortab`: Displays a table of the 256 terminal colors with their indices and
25
+ * `term_cdiff`: colors a diff patch
26
+ * `term_colortab`: Displays a table of the 256 terminal colors with their indices and
28
27
  nearest html equivalents.
29
28
  * `term_display`: displays a ppm3 or ppm6 image file in the terminal. If the netpbm
30
29
  programs are installed it can handle a lot of other image file formats.
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_snow`: displays falling snow in the terminal using ANSI movement
33
+ sequences.
32
34
 
33
35
  Additionally the file examples/example.rb in the source/gem-distribution shows
34
36
  how this library can be used.
data/Rakefile CHANGED
@@ -8,21 +8,21 @@ GemHadar do
8
8
  path_module 'Term::ANSIColor'
9
9
  author 'Florian Frank'
10
10
  email 'flori@ping.de'
11
- homepage "http://flori.github.com/#{name}"
11
+ homepage "https://github.com/flori/#{name}"
12
12
  summary 'Ruby library that colors strings using ANSI escape sequences'
13
13
  description 'This library uses ANSI escape sequences to control the attributes of terminal output'
14
14
  licenses << 'Apache-2.0'
15
15
 
16
16
  test_dir 'tests'
17
17
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage',
18
- 'tags', '.bundle', '.byebug_history'
18
+ 'tags', '.bundle', '.byebug_history', 'errors.lst'
19
19
 
20
20
  readme 'README.md'
21
21
  executables.merge Dir['bin/*'].map { |x| File.basename(x) }
22
22
 
23
23
  dependency 'tins', '~>1.0'
24
+ dependency 'mize', '~>0.5'
24
25
  development_dependency 'simplecov'
25
26
  development_dependency 'test-unit'
26
-
27
- required_ruby_version '>= 2.0'
27
+ development_dependency 'utils'
28
28
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.1
1
+ 1.10.4
data/bin/term_colortab CHANGED
@@ -15,6 +15,32 @@ def print_color(c)
15
15
  print ("%3u #{color.rgb.html} " % c).on_color(color.name).color(text.name)
16
16
  end
17
17
 
18
+ if Term::ANSIColor.true_coloring = ENV['COLORTERM'] =~ /\A(truecolor|24bit)\z/
19
+
20
+ puts "True colors".bold, ""
21
+ step = 36
22
+ (0..255).step(step) do |g|
23
+ (0..255).step(step) do |r|
24
+ (0..255).step(step) do |b|
25
+ print Term::ANSIColor.on_color(Term::ANSIColor::RGBTriple.new(r, g, b)) { ' ' }
26
+ end
27
+ print ' '
28
+ end
29
+ puts
30
+ end
31
+
32
+ puts
33
+ (0..255).step(4) do |g|
34
+ print Term::ANSIColor.on_color(Term::ANSIColor::RGBTriple.new(g, g, g)) { ' ' }
35
+ end
36
+ puts
37
+ puts
38
+
39
+ end
40
+
41
+ Term::ANSIColor.true_coloring = false
42
+
43
+ puts "256 colors".bold, ""
18
44
  for c in 0..3
19
45
  print_color c
20
46
  end
@@ -40,10 +66,10 @@ for c in 16..231
40
66
  (c - 16) % 36 == 0 and puts
41
67
  print_color c
42
68
  end
69
+ puts
43
70
 
44
71
  for c in 232..255
45
72
  (c - 16) % 6 == 0 and puts
46
- (c - 16) % 12 == 0 and puts
47
73
  print_color c
48
74
  end
49
75
  puts
data/bin/term_display CHANGED
@@ -65,13 +65,14 @@ Options are
65
65
  -a ASPECT x:y aspect, defaults to 2.2
66
66
  -C COLS number of columns for rendering with aspect, defaults to max
67
67
  -R ROWS number of rows for rendering with aspect, defaults to max - 1
68
+ -t use true colors
68
69
  -h this help
69
70
 
70
71
  EOT
71
72
  exit rc
72
73
  end
73
74
 
74
- opts = go 'hm:g:s:a:C:R:'
75
+ opts = go 'hm:g:s:a:C:R:t'
75
76
  opts['h'] and usage
76
77
  filename = ARGV.shift or usage 1
77
78
  metric = Term::ANSIColor::RGBColorMetrics.metric(opts['m'] || 'CIELab')
@@ -84,8 +85,9 @@ opts['R'] ||= [ Tins::Terminal.rows - 1, 0 ].max
84
85
  file = provide_ppm_file(filename, opts)
85
86
  ppm = Term::ANSIColor::PPMReader.new(
86
87
  file,
87
- :metric => metric,
88
- :gray => gray
88
+ metric: metric,
89
+ gray: gray,
90
+ true_coloring: opts[?t]
89
91
  )
90
92
 
91
93
  puts ppm
data/bin/term_mandel CHANGED
@@ -1,35 +1,32 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'term/ansicolor'
4
+ include Term::ANSIColor
4
5
  require 'tins/xt'
5
- require "complex"
6
6
  include Tins::GO
7
+ require "complex"
7
8
 
8
- @width, @height = Tins::Terminal.cols, Tins::Terminal.lines
9
+ $width, $height = Tins::Terminal.cols, Tins::Terminal.lines
10
+ $height *= 2
9
11
 
10
12
  def color_random
11
13
  (1..3).map { rand(255) }
12
14
  end
13
15
 
14
16
  def draw_set(rx, ry)
15
- sx = (rx.end - rx.begin).abs / @width
16
- sy = (ry.end - ry.begin).abs / @height
17
-
18
- ac = Term::ANSIColor
19
- color =
20
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
21
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
22
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
23
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
24
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
25
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
26
- ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
27
- ac::Attribute[ color_random ].gradient_to(ac::Attribute['#000'], :steps => 16)
17
+ sx = (rx.end - rx.begin).abs / $width
18
+ sy = (ry.end - ry.begin).abs / $height
19
+
20
+ steps = 16
21
+ color = (5.times.map { color_random } + [ 0, 0, 0 ]).map { Attribute[_1] }
22
+ color = color[1..-1].inject(color[0,1]) { |c, x|
23
+ c + c.last.gradient_to(x, steps:)
24
+ }
28
25
  iters = color.size - 2
29
26
 
30
- text = ''
31
- for j in 0...@height
32
- for i in 0...@width
27
+ data = [ [] ]
28
+ for j in 0...$height
29
+ for i in 0...$width
33
30
  n, z_n = 0, Complex(0, 0)
34
31
  c = Complex(sx * i + rx.begin, sy * j + ry.begin)
35
32
  while n <= iters
@@ -37,16 +34,25 @@ def draw_set(rx, ry)
37
34
  z_n = z_n ** 2 + c
38
35
  n += 1
39
36
  end
40
- text << ac.on_color(color[n]) << ' '
37
+ data.last << n
41
38
  end
42
- text << ac.reset << "\n"
39
+ data << []
43
40
  end
44
- puts text
41
+ screen = ''
42
+ (0...$height).step(2) do |j|
43
+ (0...$width).each do |i|
44
+ screen << color(color[data[j][i]]) <<
45
+ on_color(color[data[j + 1][i]]) << ?▀
46
+ end
47
+ end
48
+ print move_home, screen, reset
45
49
  end
46
50
 
47
- opts = go 'x:y:'
51
+ opts = go 'x:y'
52
+
53
+ Term::ANSIColor.true_coloring = ENV['COLORTERM'] =~ /\A(truecolor|24bit)\z/
48
54
 
49
- rx = opts['x'].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-2.0..1.0)
50
- ry = opts['y'].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-1.0..1.0)
55
+ rx = opts[?x].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-2.0..1.0)
56
+ ry = opts[?y].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-1.0..1.0)
51
57
 
52
58
  draw_set rx, ry
data/bin/term_snow CHANGED
@@ -9,23 +9,23 @@ class SnowFlake
9
9
  extend Term::ANSIColor
10
10
 
11
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
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
15
 
16
- attr_accessor :x
16
+ attr_accessor :x
17
17
 
18
- attr_accessor :y
18
+ attr_accessor :y
19
19
 
20
- attr_accessor :shape
20
+ attr_accessor :shape
21
21
 
22
- def to_s
23
- move_to(y, x) { white on_black @shape }
24
- end
22
+ def to_s
23
+ move_to(y, x) { white on_black @shape }
24
+ end
25
25
  end
26
26
 
27
- opts = go 'n:s:'
28
- new_snowflakes = (opts[?n] || 3).to_i
27
+ opts = go 'n:s:'
28
+ new_snowflakes = (opts[?n] || 3).to_i
29
29
  sleep_duration = (opts[?s] || 0.2).to_f
30
30
 
31
31
  flakes = []
@@ -51,7 +51,7 @@ loop do
51
51
  sf.x = SnowFlake.terminal_columns
52
52
  end
53
53
  else
54
- sf.x == 1
54
+ sf.x += 1
55
55
  if sf.x > SnowFlake.terminal_columns
56
56
  sf.x = 1
57
57
  end
@@ -64,7 +64,7 @@ loop do
64
64
  flakes << SnowFlake.new(rand(1..SnowFlake.terminal_columns), 1)
65
65
  end
66
66
 
67
- print *flakes
67
+ print(*flakes)
68
68
 
69
69
  sleep sleep_duration
70
70
  rescue Interrupt
data/examples/example.rb CHANGED
@@ -76,11 +76,39 @@ print "clear".clear, "reset".reset, "bold".bold, "dark".dark,
76
76
 
77
77
  symbols = Term::ANSIColor::attributes
78
78
  print red { bold { "All supported attributes = " } },
79
- symbols.map { |s| __send__(s, s.inspect) } * ', ', "\n\n"
79
+ symbols.map { |s| __send__(s, s.inspect) } * ",\n", "\n\n"
80
80
 
81
81
  print "Send symbols to strings:".send(:red).send(:bold), "\n"
82
82
  print symbols[12, 8].map { |c| c.to_s.send(c) } * '', "\n\n"
83
83
 
84
+ print red { bold { "Use true colors if supported" } }, "\n"
85
+
86
+ colors = Term::ANSIColor::Attribute['#ff0000'].gradient_to(
87
+ Term::ANSIColor::Attribute['#ffff00'],
88
+ true_coloring: true,
89
+ step: 16
90
+ )
91
+ colors += Term::ANSIColor::Attribute[colors.last].gradient_to(
92
+ Term::ANSIColor::Attribute['#00ff00'],
93
+ true_coloring: true,
94
+ step: 16
95
+ )
96
+ colors += Term::ANSIColor::Attribute[colors.last].gradient_to(
97
+ Term::ANSIColor::Attribute['#00ffff'],
98
+ true_coloring: true,
99
+ step: 16
100
+ )
101
+ colors += Term::ANSIColor::Attribute[colors.last].gradient_to(
102
+ Term::ANSIColor::Attribute['#0000ff'],
103
+ true_coloring: true,
104
+ step: 16
105
+ )
106
+
107
+ chars = %w[ ⣾ ⣽ ⣻ ⢿ ⡿ ⣟ ⣯ ⣷ ]
108
+ colors.each_with_index { |c, i| print c.apply { chars[i % chars.size] } }
109
+ puts
110
+ puts
111
+
84
112
  print red { bold { "Make strings monochromatic again:" } }, "\n"
85
113
  print [
86
114
  "red".red,
@@ -88,3 +116,5 @@ print [
88
116
  uncolored { "not red anymore".red },
89
117
  uncolored("not red anymore".red)
90
118
  ].map { |x| x + "\n" } * ''
119
+
120
+ puts "Use the " + "Source".hyperlink("https://github.com/flori/term-ansicolor") + ", Luke!"
@@ -2,65 +2,67 @@ module Term
2
2
  module ANSIColor
3
3
  class Attribute
4
4
  class Color256
5
- Attribute.set :color0, 0, :html => '#000000'
6
- Attribute.set :color1, 1, :html => '#800000'
7
- Attribute.set :color2, 2, :html => '#808000'
8
- Attribute.set :color3, 3, :html => '#808000'
9
- Attribute.set :color4, 4, :html => '#000080'
10
- Attribute.set :color5, 5, :html => '#800080'
11
- Attribute.set :color6, 6, :html => '#008080'
12
- Attribute.set :color7, 7, :html => '#c0c0c0'
5
+ Attribute.set :color0, 0, html: '#000000'
6
+ Attribute.set :color1, 1, html: '#800000'
7
+ Attribute.set :color2, 2, html: '#008000'
8
+ Attribute.set :color3, 3, html: '#808000'
9
+ Attribute.set :color4, 4, html: '#000080'
10
+ Attribute.set :color5, 5, html: '#800080'
11
+ Attribute.set :color6, 6, html: '#008080'
12
+ Attribute.set :color7, 7, html: '#c0c0c0'
13
13
 
14
- Attribute.set :color8, 8, :html => '#808080'
15
- Attribute.set :color9, 9, :html => '#ff0000'
16
- Attribute.set :color10, 10, :html => '#00ff00'
17
- Attribute.set :color11, 11, :html => '#ffff00'
18
- Attribute.set :color12, 12, :html => '#0000ff'
19
- Attribute.set :color13, 13, :html => '#ff00ff'
20
- Attribute.set :color14, 14, :html => '#00ffff'
21
- Attribute.set :color15, 15, :html => '#ffffff'
14
+ Attribute.set :color8, 8, html: '#808080'
15
+ Attribute.set :color9, 9, html: '#ff0000'
16
+ Attribute.set :color10, 10, html: '#00ff00'
17
+ Attribute.set :color11, 11, html: '#ffff00'
18
+ Attribute.set :color12, 12, html: '#0000ff'
19
+ Attribute.set :color13, 13, html: '#ff00ff'
20
+ Attribute.set :color14, 14, html: '#00ffff'
21
+ Attribute.set :color15, 15, html: '#ffffff'
22
22
 
23
23
  steps = [ 0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff ]
24
24
 
25
25
  for i in 16..231
26
26
  red, green, blue = (i - 16).to_s(6).rjust(3, '0').each_char.map { |c| steps[c.to_i] }
27
- Attribute.set "color#{i}", i, :red => red, :green => green, :blue => blue
27
+ Attribute.set "color#{i}", i, red: red, green: green, blue: blue
28
28
  end
29
29
 
30
30
  grey = 8
31
31
  for i in 232..255
32
- Attribute.set "color#{i}", i, :red => grey, :green => grey, :blue => grey
32
+ Attribute.set "color#{i}", i, red: grey, green: grey, blue: grey
33
33
  grey += 10
34
34
  end
35
35
 
36
- Attribute.set :on_color0, 0, :html => '#000000'
37
- Attribute.set :on_color1, 1, :html => '#800000'
38
- Attribute.set :on_color2, 2, :html => '#808000'
39
- Attribute.set :on_color3, 3, :html => '#808000'
40
- Attribute.set :on_color4, 4, :html => '#000080'
41
- Attribute.set :on_color5, 5, :html => '#800080'
42
- Attribute.set :on_color6, 6, :html => '#008080'
43
- Attribute.set :on_color7, 7, :html => '#c0c0c0'
36
+ Attribute.set :on_color0, 0, html: '#000000', background: true
37
+ Attribute.set :on_color1, 1, html: '#800000', background: true
38
+ Attribute.set :on_color2, 2, html: '#808000', background: true
39
+ Attribute.set :on_color3, 3, html: '#808000', background: true
40
+ Attribute.set :on_color4, 4, html: '#000080', background: true
41
+ Attribute.set :on_color5, 5, html: '#800080', background: true
42
+ Attribute.set :on_color6, 6, html: '#008080', background: true
43
+ Attribute.set :on_color7, 7, html: '#c0c0c0'
44
44
 
45
- Attribute.set :on_color8, 8, :html => '#808080'
46
- Attribute.set :on_color9, 9, :html => '#ff0000'
47
- Attribute.set :on_color10, 10, :html => '#00ff00'
48
- Attribute.set :on_color11, 11, :html => '#ffff00'
49
- Attribute.set :on_color12, 12, :html => '#0000ff'
50
- Attribute.set :on_color13, 13, :html => '#ff00ff'
51
- Attribute.set :on_color14, 14, :html => '#00ffff'
52
- Attribute.set :on_color15, 15, :html => '#ffffff'
45
+ Attribute.set :on_color8, 8, html: '#808080', background: true
46
+ Attribute.set :on_color9, 9, html: '#ff0000', background: true
47
+ Attribute.set :on_color10, 10, html: '#00ff00', background: true
48
+ Attribute.set :on_color11, 11, html: '#ffff00', background: true
49
+ Attribute.set :on_color12, 12, html: '#0000ff', background: true
50
+ Attribute.set :on_color13, 13, html: '#ff00ff', background: true
51
+ Attribute.set :on_color14, 14, html: '#00ffff', background: true
52
+ Attribute.set :on_color15, 15, html: '#ffffff', background: true
53
53
 
54
54
  steps = [ 0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff ]
55
55
 
56
56
  for i in 16..231
57
57
  red, green, blue = (i - 16).to_s(6).rjust(3, '0').each_char.map { |c| steps[c.to_i] }
58
- Attribute.set "on_color#{i}", i, :red => red, :green => green, :blue => blue
58
+ Attribute.set "on_color#{i}", i,
59
+ red: red, green: green, blue: blue, background: true
59
60
  end
60
61
 
61
62
  grey = 8
62
63
  for i in 232..255
63
- Attribute.set "on_color#{i}", i, :red => grey, :green => grey, :blue => grey
64
+ Attribute.set "on_color#{i}", i,
65
+ red: grey, green: grey, blue: grey, background: true
64
66
  grey += 10
65
67
  end
66
68
  end
@@ -2,23 +2,23 @@ module Term
2
2
  module ANSIColor
3
3
  class Attribute
4
4
  class Color8
5
- Attribute.set :black, 30
6
- Attribute.set :red, 31
7
- Attribute.set :green, 32
8
- Attribute.set :yellow, 33
9
- Attribute.set :blue, 34
10
- Attribute.set :magenta, 35
11
- Attribute.set :cyan, 36
12
- Attribute.set :white, 37
5
+ Attribute.set :black, 30, direct: '#000000'
6
+ Attribute.set :red, 31, direct: '#800000'
7
+ Attribute.set :green, 32, direct: '#008000'
8
+ Attribute.set :yellow, 33, direct: '#808000'
9
+ Attribute.set :blue, 34, direct: '#000080'
10
+ Attribute.set :magenta, 35, direct: '#800080'
11
+ Attribute.set :cyan, 36, direct: '#008080'
12
+ Attribute.set :white, 37, direct: '#c0c0c0'
13
13
 
14
- Attribute.set :on_black, 40
15
- Attribute.set :on_red, 41
16
- Attribute.set :on_green, 42
17
- Attribute.set :on_yellow, 43
18
- Attribute.set :on_blue, 44
19
- Attribute.set :on_magenta, 45
20
- Attribute.set :on_cyan, 46
21
- Attribute.set :on_white, 47
14
+ Attribute.set :on_black, 40, direct: '#000000'
15
+ Attribute.set :on_red, 41, direct: '#800000'
16
+ Attribute.set :on_green, 42, direct: '#008000'
17
+ Attribute.set :on_yellow, 43, direct: '#808000'
18
+ Attribute.set :on_blue, 44, direct: '#000080'
19
+ Attribute.set :on_magenta, 45, direct: '#800080'
20
+ Attribute.set :on_cyan, 46, direct: '#008080'
21
+ Attribute.set :on_white, 47, direct: '#808080'
22
22
  end
23
23
  end
24
24
  end
@@ -2,41 +2,39 @@ module Term
2
2
  module ANSIColor
3
3
  class Attribute
4
4
  class IntenseColor8
5
- # High intensity, aixterm (works in OS X)
6
- Attribute.set :intense_black, 90
7
- Attribute.set :bright_black, 90
8
- Attribute.set :intense_red, 91
9
- Attribute.set :bright_red, 91
10
- Attribute.set :intense_green, 92
11
- Attribute.set :bright_green, 92
12
- Attribute.set :intense_yellow, 93
13
- Attribute.set :bright_yellow, 93
14
- Attribute.set :intense_blue, 94
15
- Attribute.set :bright_blue, 94
16
- Attribute.set :intense_magenta, 95
17
- Attribute.set :bright_magenta, 95
18
- Attribute.set :intense_cyan, 96
19
- Attribute.set :bright_cyan, 96
20
- Attribute.set :intense_white, 97
21
- Attribute.set :bright_white, 97
5
+ Attribute.set :intense_black, 90, direct: '#808080'
6
+ Attribute.set :bright_black, 90, direct: '#808080'
7
+ Attribute.set :intense_red, 91, direct: '#ff0000'
8
+ Attribute.set :bright_red, 91, direct: '#ff0000'
9
+ Attribute.set :intense_green, 92, direct: '#00ff00'
10
+ Attribute.set :bright_green, 92, direct: '#00ff00'
11
+ Attribute.set :intense_yellow, 93, direct: '#ffff00'
12
+ Attribute.set :bright_yellow, 93, direct: '#ffff00'
13
+ Attribute.set :intense_blue, 94, direct: '#0000ff'
14
+ Attribute.set :bright_blue, 94, direct: '#0000ff'
15
+ Attribute.set :intense_magenta, 95, direct: '#ff00ff'
16
+ Attribute.set :bright_magenta, 95, direct: '#ff00ff'
17
+ Attribute.set :intense_cyan, 96, direct: '#00ffff'
18
+ Attribute.set :bright_cyan, 96, direct: '#00ffff'
19
+ Attribute.set :intense_white, 97, direct: '#ffffff'
20
+ Attribute.set :bright_white, 97, direct: '#ffffff'
22
21
 
23
- # High intensity background, aixterm (works in OS X)
24
- Attribute.set :on_intense_black, 100
25
- Attribute.set :on_bright_black, 100
26
- Attribute.set :on_intense_red, 101
27
- Attribute.set :on_bright_red, 101
28
- Attribute.set :on_intense_green, 102
29
- Attribute.set :on_bright_green, 102
30
- Attribute.set :on_intense_yellow, 103
31
- Attribute.set :on_bright_yellow, 103
32
- Attribute.set :on_intense_blue, 104
33
- Attribute.set :on_bright_blue, 104
34
- Attribute.set :on_intense_magenta, 105
35
- Attribute.set :on_bright_magenta, 105
36
- Attribute.set :on_intense_cyan, 106
37
- Attribute.set :on_bright_cyan, 106
38
- Attribute.set :on_intense_white, 107
39
- Attribute.set :on_bright_white, 107
22
+ Attribute.set :on_intense_black, 100, direct: '#808080'
23
+ Attribute.set :on_bright_black, 100, direct: '#808080'
24
+ Attribute.set :on_intense_red, 101, direct: '#ff0000'
25
+ Attribute.set :on_bright_red, 101, direct: '#ff0000'
26
+ Attribute.set :on_intense_green, 102, direct: '#00ff00'
27
+ Attribute.set :on_bright_green, 102, direct: '#00ff00'
28
+ Attribute.set :on_intense_yellow, 103, direct: '#ffff00'
29
+ Attribute.set :on_bright_yellow, 103, direct: '#ffff00'
30
+ Attribute.set :on_intense_blue, 104, direct: '#0000ff'
31
+ Attribute.set :on_bright_blue, 104, direct: '#0000ff'
32
+ Attribute.set :on_intense_magenta, 105, direct: '#ff00ff'
33
+ Attribute.set :on_bright_magenta, 105, direct: '#ff00ff'
34
+ Attribute.set :on_intense_cyan, 106, direct: '#00ffff'
35
+ Attribute.set :on_bright_cyan, 106, direct: '#00ffff'
36
+ Attribute.set :on_intense_white, 107, direct: '#ffffff'
37
+ Attribute.set :on_bright_white, 107, direct: '#ffffff'
40
38
  end
41
39
  end
42
40
  end
@@ -1,22 +1,25 @@
1
+ require 'term/ansicolor/attribute/underline'
2
+
1
3
  module Term
2
4
  module ANSIColor
3
5
  class Attribute
4
6
  class Text
5
- Attribute.set :clear, 0 # String#clear already used in String
6
- Attribute.set :reset, 0 # synonym for :clear
7
- Attribute.set :bold, 1
8
- Attribute.set :dark, 2
9
- Attribute.set :faint, 2
10
- Attribute.set :italic, 3 # not widely implemented
11
- Attribute.set :underline, 4
12
- Attribute.set :underscore, 4 # synonym for :underline
13
- Attribute.set :blink, 5
14
- Attribute.set :rapid_blink, 6 # not widely implemented
15
- Attribute.set :reverse, 7 # String#reverse already used in String
16
- Attribute.set :negative, 7 # synonym for :reverse
17
- Attribute.set :concealed, 8
18
- Attribute.set :conceal, 8 # synonym for :concealed
19
- Attribute.set :strikethrough, 9 # not widely implemented
7
+ Attribute.set :clear, 0 # String#clear already used in String
8
+ Attribute.set :reset, 0 # synonym for :clear
9
+ Attribute.set :bold, 1
10
+ Attribute.set :dark, 2
11
+ Attribute.set :faint, 2
12
+ Attribute.set :italic, 3 # not widely implemented
13
+ Attribute.set :blink, 5
14
+ Attribute.set :rapid_blink, 6 # not widely implemented
15
+ Attribute.set :reverse, 7 # String#reverse already used in String
16
+ Attribute.set :negative, 7 # synonym for :reverse
17
+ Attribute.set :concealed, 8
18
+ Attribute.set :conceal, 8 # synonym for :concealed
19
+ Attribute.set :strikethrough, 9 # not widely implemented
20
+ Attribute.set :overline, 53
21
+
22
+ include Term::ANSIColor::Attribute::Underline
20
23
  end
21
24
  end
22
25
  end