ansi256 0.2.5 → 0.4.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: cf28c245bf8d2c7a888e05572ea1270a590bd2c0a906e37171099388ff4eb3a3
4
+ data.tar.gz: 1e5e1531cd270090d5ccaf931774f4d0cc54afbe2f0e1ba2d298829f5c5de651
5
+ SHA512:
6
+ metadata.gz: a4209529d49b0ce7ef7acdbfd7072264840c276502281bef42944fe07609828ca02de4b3542d4fafc68f0cfaeb7ef17ddfef24db5fcdcd5e2b12f13caf1723f6
7
+ data.tar.gz: 59462bdc1e6c8072957674d8fcf7548a0eb20c76cf7021f82a6bffdb93befd7012704991f9190cac4b7587bd27eb1b9b62142a7246d9176cd0e07c1ac5a16686
data/README.md CHANGED
@@ -86,6 +86,8 @@ Ansi256.bg(226)
86
86
  Ansi256.green
87
87
  Ansi256.on_green
88
88
  Ansi256.bold
89
+ Ansi256.dim
90
+ Ansi256.italic
89
91
  Ansi256.underline
90
92
  Ansi256.reset
91
93
 
@@ -101,7 +103,8 @@ Disabling extended String methods
101
103
  Ansi256.enabled?
102
104
  # true
103
105
 
104
- Ansi256.enabled = false
106
+ # Print colored output only when STDOUT is tty
107
+ Ansi256.enabled = $stdout.tty?
105
108
 
106
109
  "Hello".fg(232)
107
110
  # Hello
@@ -113,7 +116,7 @@ ansi256 executable
113
116
  Ansi256 comes with `ansi256` script which can be used as follows
114
117
 
115
118
  ```bash
116
- usage: ansi256 [-u] <[fg][/bg]> [mesage]
119
+ usage: ansi256 [-b] [-d] [-i] [-u] <[fg][/bg]> [message]
117
120
 
118
121
  # Numeric color codes
119
122
  ansi256 232 "Hello world"
data/ansi256.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "bundler", ">= 2.2.33"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "minitest"
24
24
  end
data/bin/ansi256 CHANGED
@@ -1,43 +1,45 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  require 'rubygems'
3
5
  require 'ansi256'
4
6
 
5
- bold = ARGV.delete '-b'
6
- underline = ARGV.delete '-u'
7
+ attrs = [
8
+ ARGV.delete('-b') && :bold,
9
+ ARGV.delete('-d') && :dim,
10
+ ARGV.delete('-i') && :italic,
11
+ ARGV.delete('-u') && :underline
12
+ ].compact
7
13
 
8
- if ARGV.length < 1
9
- puts 'usage: ansi256 [-b] [-u] <[fg][/bg]> [message]'
14
+ if ARGV.empty?
15
+ puts 'usage: ansi256 [-b] [-d] [-i] [-u] <[fg][/bg]> [message]'
10
16
  exit 1
11
17
  end
12
18
 
13
- fgbg, *msg = ARGV
14
- fg, bg = fgbg.split('/').map { |e|
15
- if !e.to_s.empty?
16
- case e
17
- when /^#?[0-9a-f]{6}$/i
18
- e
19
- when /^\d+$/
20
- e.to_i
21
- else
22
- e.downcase.to_sym
23
- end
19
+ fgbg, *rest = ARGV
20
+ fg, bg = fgbg.split('/').map do |e|
21
+ next if e.empty?
22
+
23
+ case e
24
+ when /^#?[0-9a-f]{6}$/i then e
25
+ when /^\d+$/ then e.to_i
26
+ else e.downcase.to_sym
24
27
  end
25
- }
28
+ end
26
29
 
27
- def output msg, fg, bg, ul, b
28
- msg = msg.fg(fg) if fg
29
- msg = msg.bg(bg) if bg
30
- msg = msg.underline if ul
31
- msg = msg.bold if b
30
+ output = lambda do |msg|
31
+ msg = msg.fg(fg) if fg
32
+ msg = msg.bg(bg) if bg
33
+ msg = attrs.reduce(msg) { |m, a| m.send(a) }
32
34
  puts msg
33
35
  end
34
36
 
35
- if !msg.empty?
36
- msg.each do |m|
37
- output m, fg, bg, underline, bold
37
+ if !rest.empty?
38
+ rest.each do |m|
39
+ output.call(m)
38
40
  end
39
41
  else
40
- while msg = $stdin.gets
41
- output msg.chomp, fg, bg, underline, bold
42
+ while (msg = $stdin.gets)
43
+ output.call(msg.chomp)
42
44
  end
43
45
  end
data/lib/ansi256/code.rb CHANGED
@@ -2,6 +2,8 @@ module Ansi256
2
2
  CODE = {
3
3
  :reset => 0,
4
4
  :bold => 1,
5
+ :dim => 2,
6
+ :italic => 3,
5
7
  :underline => 4,
6
8
 
7
9
  :black => 30,
@@ -1,3 +1,3 @@
1
1
  module Ansi256
2
- VERSION = "0.2.5"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/ansi256.rb CHANGED
@@ -10,7 +10,7 @@ module Ansi256
10
10
  wrap str, Ansi256.fg(code)
11
11
  elsif NAMED_COLORS.include?(code)
12
12
  "\e[#{CODE[code]}m"
13
- elsif code.is_a?(Fixnum) && (0..255).include?(code)
13
+ elsif code.is_a?(Integer) && (0..255).include?(code)
14
14
  "\e[38;5;#{code}m"
15
15
  elsif ansirgb = ansicode_for_rgb(code)
16
16
  "\e[38;5;#{ansirgb}m"
@@ -24,7 +24,7 @@ module Ansi256
24
24
  wrap str, Ansi256.bg(code)
25
25
  elsif NAMED_COLORS.include?(code)
26
26
  "\e[#{CODE[code] + 10}m"
27
- elsif code.is_a?(Fixnum) && (0..255).include?(code)
27
+ elsif code.is_a?(Integer) && (0..255).include?(code)
28
28
  "\e[48;5;#{code}m"
29
29
  elsif ansirgb = ansicode_for_rgb(code)
30
30
  "\e[48;5;#{ansirgb}m"
data/test/test_ansi256.rb CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
3
  require 'ansi256'
4
4
  require 'minitest/autorun'
5
5
 
6
- class TestAnsi256 < MiniTest::Unit::TestCase
6
+ class TestAnsi256 < Minitest::Test
7
7
  def cfmt col
8
8
  col.to_s.rjust(5).fg(232).bg(col)
9
9
  end
@@ -67,6 +67,8 @@ class TestAnsi256 < MiniTest::Unit::TestCase
67
67
  def test_just_code
68
68
  assert_equal "\e[0m", Ansi256.reset
69
69
  assert_equal "\e[1m", Ansi256.bold
70
+ assert_equal "\e[2m", Ansi256.dim
71
+ assert_equal "\e[3m", Ansi256.italic
70
72
  assert_equal "\e[4m", Ansi256.underline
71
73
 
72
74
  assert_equal "\e[30m", Ansi256.black
metadata CHANGED
@@ -1,62 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansi256
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Junegunn Choi
9
- autorequire:
10
8
  bindir: bin
11
9
  cert_chain: []
12
- date: 2013-05-29 00:00:00.000000000 Z
10
+ date: 2025-02-26 00:00:00.000000000 Z
13
11
  dependencies:
14
12
  - !ruby/object:Gem::Dependency
15
13
  name: bundler
16
14
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
15
  requirements:
19
- - - ~>
16
+ - - ">="
20
17
  - !ruby/object:Gem::Version
21
- version: '1.3'
18
+ version: 2.2.33
22
19
  type: :development
23
20
  prerelease: false
24
21
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
22
  requirements:
27
- - - ~>
23
+ - - ">="
28
24
  - !ruby/object:Gem::Version
29
- version: '1.3'
25
+ version: 2.2.33
30
26
  - !ruby/object:Gem::Dependency
31
27
  name: rake
32
28
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
29
  requirements:
35
- - - ! '>='
30
+ - - ">="
36
31
  - !ruby/object:Gem::Version
37
32
  version: '0'
38
33
  type: :development
39
34
  prerelease: false
40
35
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
36
  requirements:
43
- - - ! '>='
37
+ - - ">="
44
38
  - !ruby/object:Gem::Version
45
39
  version: '0'
46
40
  - !ruby/object:Gem::Dependency
47
41
  name: minitest
48
42
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
43
  requirements:
51
- - - ! '>='
44
+ - - ">="
52
45
  - !ruby/object:Gem::Version
53
46
  version: '0'
54
47
  type: :development
55
48
  prerelease: false
56
49
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
50
  requirements:
59
- - - ! '>='
51
+ - - ">="
60
52
  - !ruby/object:Gem::Version
61
53
  version: '0'
62
54
  description: Colorize text using 256-color ANSI codes
@@ -67,7 +59,7 @@ executables:
67
59
  extensions: []
68
60
  extra_rdoc_files: []
69
61
  files:
70
- - .gitignore
62
+ - ".gitignore"
71
63
  - Gemfile
72
64
  - LICENSE.txt
73
65
  - README.md
@@ -82,27 +74,23 @@ files:
82
74
  homepage: https://github.com/junegunn/ansi256
83
75
  licenses:
84
76
  - MIT
85
- post_install_message:
77
+ metadata: {}
86
78
  rdoc_options: []
87
79
  require_paths:
88
80
  - lib
89
81
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
82
  requirements:
92
- - - ! '>='
83
+ - - ">="
93
84
  - !ruby/object:Gem::Version
94
85
  version: '0'
95
86
  required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
87
  requirements:
98
- - - ! '>='
88
+ - - ">="
99
89
  - !ruby/object:Gem::Version
100
90
  version: '0'
101
91
  requirements: []
102
- rubyforge_project:
103
- rubygems_version: 1.8.25
104
- signing_key:
105
- specification_version: 3
92
+ rubygems_version: 3.6.2
93
+ specification_version: 4
106
94
  summary: Colorize text using 256-color ANSI codes
107
95
  test_files:
108
96
  - test/test_ansi256.rb