term-ansicolor 1.7.1 → 1.8.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
2
  SHA256:
3
- metadata.gz: 82f14903202a3f6e83de02c8c2b17784664a57a5cce01527a7d11337ec6a2e1f
4
- data.tar.gz: c5ea599eacc7486ba0688dad5b3263b7aff4e435c5b1af9d93bd519b135162cb
3
+ metadata.gz: 9718f060556740778ada5aec7993d0ed9e4b61548b037f437255c2b01697dafa
4
+ data.tar.gz: 2f8eebac308b3c1d46436916c4dd7e37d71bfce3bb4376ed0b88027da1a1af9e
5
5
  SHA512:
6
- metadata.gz: 12d9a379cf7b8459f9bafdda098d1ea6b967bb00ad643fd7c5395c9332c958bdca0da8baf7748f3e787359fc5f67cbaaecb8d669a864b47047965144ba536cd6
7
- data.tar.gz: cd51989c8ec30cdfc6dc3ce79e1e8c0e322473cefde6f2b2d757bbce2d76e79e14e5bb551d65fddd46d7a96f9404b89d95bcb3da96101125fb4f1af908276f27
6
+ metadata.gz: 3a59e5c5c1ba7d9ece81227fc207be44959ac5c6f9d2b6c89c35a16563217f0f36c70c1ea33fa8a7ed89fc9e47e0a3ebf9827401e08b89b770b2f9a1c28c9701
7
+ data.tar.gz: a842928574662464fd5ad2bbd18bb9bcf0a45b1bd354e674462004ca07f60d3f36ef8b18bccb60faeba08f416f19652be501e51f17b216fce96f8068d7efdec5
data/.all_images.yml ADDED
@@ -0,0 +1,17 @@
1
+ dockerfile: |-
2
+ RUN apk add --no-cache build-base git
3
+ RUN gem update --system
4
+ RUN gem install gem_hadar bundler
5
+
6
+ script: &script |-
7
+ echo -e "\e[1m"
8
+ ruby -v
9
+ echo -e "\e[0m"
10
+ bundle
11
+ rake test
12
+
13
+ images:
14
+ ruby:3.3-alpine: *script
15
+ ruby:3.2-alpine: *script
16
+ ruby:3.1-alpine: *script
17
+ ruby:3.0-alpine: *script
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.3.0
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ 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'
@@ -23,6 +23,5 @@ GemHadar do
23
23
  dependency 'tins', '~>1.0'
24
24
  development_dependency 'simplecov'
25
25
  development_dependency 'test-unit'
26
-
27
- required_ruby_version '>= 2.0'
26
+ development_dependency 'utils'
28
27
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.7.1
1
+ 1.8.0
data/examples/example.rb CHANGED
@@ -88,3 +88,5 @@ print [
88
88
  uncolored { "not red anymore".red },
89
89
  uncolored("not red anymore".red)
90
90
  ].map { |x| x + "\n" } * ''
91
+
92
+ puts "Use the " + "Source".hyperlink("https://github.com/flori/term-ansicolor") + ", Luke!"
@@ -0,0 +1,34 @@
1
+ require 'tins/terminal'
2
+
3
+ module Term
4
+ module ANSIColor
5
+ module Hyperlink
6
+ def hyperlink(link, string = nil, id: nil, as_link: false)
7
+ block_given? && string != nil && !respond_to?(:to_str) and
8
+ raise ArgumentError,
9
+ "Require either the string argument or a block argument"
10
+ if link.nil?
11
+ link = ''
12
+ end
13
+ if as_link && !link.empty?
14
+ string ||= link
15
+ end
16
+ result = ''
17
+ if Term::ANSIColor.coloring?
18
+ result = "\e]8;#{"id=#{id}" unless id.nil?};" << link.to_str << "\e\\"
19
+ end
20
+ if block_given?
21
+ result << yield.to_s
22
+ elsif string.respond_to?(:to_str)
23
+ result << string.to_str
24
+ elsif respond_to?(:to_str)
25
+ result << to_str
26
+ else
27
+ return result # only switch on
28
+ end
29
+ result << "\e]8;;\e\\" if Term::ANSIColor.coloring?
30
+ result
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,6 +1,6 @@
1
1
  module Term::ANSIColor
2
2
  # Term::ANSIColor version
3
- VERSION = '1.7.1'
3
+ VERSION = '1.8.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:
@@ -15,8 +15,9 @@ module Term
15
15
  require 'term/ansicolor/attribute/intense_color8'
16
16
  require 'term/ansicolor/attribute/color256'
17
17
  require 'term/ansicolor/movement'
18
-
19
18
  include Term::ANSIColor::Movement
19
+ require 'term/ansicolor/hyperlink'
20
+ include Term::ANSIColor::Hyperlink
20
21
 
21
22
  # :stopdoc:
22
23
  ATTRIBUTE_NAMES = Attribute.named_attributes.map(&:name)
@@ -95,7 +96,7 @@ module Term
95
96
  elsif respond_to?(:to_str)
96
97
  result << to_str
97
98
  else
98
- return result #only switch on
99
+ return result # only switch on
99
100
  end
100
101
  result << "\e[0m" if Term::ANSIColor.coloring?
101
102
  result.extend(Term::ANSIColor)
@@ -1,45 +1,31 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: term-ansicolor 1.7.1 ruby lib
2
+ # stub: term-ansicolor 1.8.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "term-ansicolor".freeze
6
- s.version = "1.7.1"
6
+ s.version = "1.8.0".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 = "2019-01-18"
11
+ s.date = "2024-04-13"
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_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
- s.homepage = "http://flori.github.com/term-ansicolor".freeze
14
+ s.executables = ["term_cdiff".freeze, "term_colortab".freeze, "term_decolor".freeze, "term_display".freeze, "term_mandel".freeze, "term_snow".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/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, ".tool-versions".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/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
+ 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.required_ruby_version = Gem::Requirement.new(">= 2.0".freeze)
21
- s.rubygems_version = "3.0.1".freeze
20
+ s.rubygems_version = "3.5.3".freeze
22
21
  s.summary = "Ruby library that colors strings using ANSI escape sequences".freeze
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]
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]
24
23
 
25
- if s.respond_to? :specification_version then
26
- s.specification_version = 4
24
+ s.specification_version = 4
27
25
 
28
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
29
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
30
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
31
- s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
32
- s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.0"])
33
- else
34
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
35
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
36
- s.add_dependency(%q<test-unit>.freeze, [">= 0"])
37
- s.add_dependency(%q<tins>.freeze, ["~> 1.0"])
38
- end
39
- else
40
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
41
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
42
- s.add_dependency(%q<test-unit>.freeze, [">= 0"])
43
- s.add_dependency(%q<tins>.freeze, ["~> 1.0"])
44
- end
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.15.0".freeze])
27
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
28
+ s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
29
+ s.add_development_dependency(%q<utils>.freeze, [">= 0".freeze])
30
+ s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.0".freeze])
45
31
  end
@@ -0,0 +1,54 @@
1
+ class HyperlinkTest < Test::Unit::TestCase
2
+ include Term::ANSIColor
3
+
4
+ def setup
5
+ @link = 'https://foo.example.com'
6
+ end
7
+
8
+ def test_hyperlink_switch_on
9
+ assert_equal(
10
+ "\e]8;;#@link\e\\",
11
+ hyperlink(@link)
12
+ )
13
+ end
14
+
15
+ def test_hyperlink_switch_off
16
+ assert_equal(
17
+ "\e]8;;\e\\",
18
+ hyperlink(nil)
19
+ )
20
+ end
21
+
22
+ def test_hyperlink_as_link
23
+ assert_equal(
24
+ hyperlink(@link, as_link: true),
25
+ "\e]8;;#@link\e\\#@link\e]8;;\e\\",
26
+ )
27
+ end
28
+
29
+ def test_hyperlink_two_args
30
+ assert_equal(
31
+ "\e]8;;#@link\e\\foo\e]8;;\e\\",
32
+ hyperlink(@link, 'foo')
33
+ )
34
+ end
35
+
36
+ def test_hyperlink_two_args_with_id
37
+ assert_equal(
38
+ "\e]8;id=666;#@link\e\\foo\e]8;;\e\\",
39
+ hyperlink(@link, 'foo', id: 666)
40
+ )
41
+ end
42
+
43
+ def test_hyperlink_block_arg
44
+ assert_raise(ArgumentError) { hyperlink(@link, 'bar') { 'baz' } }
45
+ assert_equal(
46
+ "\e]8;;#@link\e\\foo\e]8;;\e\\",
47
+ hyperlink(@link) { 'foo' }
48
+ )
49
+ end
50
+
51
+ def test_with_stringy_self
52
+ assert_equal "\e]8;;#@link\e\\foo\e]8;;\e\\", "foo".hyperlink(@link)
53
+ end
54
+ 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.7.1
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-18 00:00:00.000000000 Z
11
+ date: 2024-04-13 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.9.1
19
+ version: 1.15.0
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.9.1
26
+ version: 1.15.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: simplecov
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: utils
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: tins
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -70,12 +84,12 @@ description: This library uses ANSI escape sequences to control the attributes o
70
84
  terminal output
71
85
  email: flori@ping.de
72
86
  executables:
73
- - term_snow
74
- - term_display
75
- - term_decolor
76
87
  - term_cdiff
77
- - term_mandel
78
88
  - term_colortab
89
+ - term_decolor
90
+ - term_display
91
+ - term_mandel
92
+ - term_snow
79
93
  extensions: []
80
94
  extra_rdoc_files:
81
95
  - README.md
@@ -86,14 +100,16 @@ extra_rdoc_files:
86
100
  - lib/term/ansicolor/attribute/intense_color8.rb
87
101
  - lib/term/ansicolor/attribute/text.rb
88
102
  - lib/term/ansicolor/hsl_triple.rb
103
+ - lib/term/ansicolor/hyperlink.rb
89
104
  - lib/term/ansicolor/movement.rb
90
105
  - lib/term/ansicolor/ppm_reader.rb
91
106
  - lib/term/ansicolor/rgb_color_metrics.rb
92
107
  - lib/term/ansicolor/rgb_triple.rb
93
108
  - lib/term/ansicolor/version.rb
94
109
  files:
110
+ - ".all_images.yml"
95
111
  - ".gitignore"
96
- - ".travis.yml"
112
+ - ".tool-versions"
97
113
  - CHANGES
98
114
  - COPYING
99
115
  - Gemfile
@@ -118,6 +134,7 @@ files:
118
134
  - lib/term/ansicolor/attribute/intense_color8.rb
119
135
  - lib/term/ansicolor/attribute/text.rb
120
136
  - lib/term/ansicolor/hsl_triple.rb
137
+ - lib/term/ansicolor/hyperlink.rb
121
138
  - lib/term/ansicolor/movement.rb
122
139
  - lib/term/ansicolor/ppm_reader.rb
123
140
  - lib/term/ansicolor/rgb_color_metrics.rb
@@ -127,15 +144,16 @@ files:
127
144
  - tests/ansicolor_test.rb
128
145
  - tests/attribute_test.rb
129
146
  - tests/hsl_triple_test.rb
147
+ - tests/hyperlink_test.rb
130
148
  - tests/ppm_reader_test.rb
131
149
  - tests/rgb_color_metrics_test.rb
132
150
  - tests/rgb_triple_test.rb
133
151
  - tests/test_helper.rb
134
- homepage: http://flori.github.com/term-ansicolor
152
+ homepage: https://github.com/flori/term-ansicolor
135
153
  licenses:
136
154
  - Apache-2.0
137
155
  metadata: {}
138
- post_install_message:
156
+ post_install_message:
139
157
  rdoc_options:
140
158
  - "--title"
141
159
  - Term-ansicolor - Ruby library that colors strings using ANSI escape sequences
@@ -147,21 +165,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
165
  requirements:
148
166
  - - ">="
149
167
  - !ruby/object:Gem::Version
150
- version: '2.0'
168
+ version: '0'
151
169
  required_rubygems_version: !ruby/object:Gem::Requirement
152
170
  requirements:
153
171
  - - ">="
154
172
  - !ruby/object:Gem::Version
155
173
  version: '0'
156
174
  requirements: []
157
- rubygems_version: 3.0.1
158
- signing_key:
175
+ rubygems_version: 3.5.3
176
+ signing_key:
159
177
  specification_version: 4
160
178
  summary: Ruby library that colors strings using ANSI escape sequences
161
179
  test_files:
162
180
  - tests/ansicolor_test.rb
163
181
  - tests/attribute_test.rb
164
182
  - tests/hsl_triple_test.rb
183
+ - tests/hyperlink_test.rb
165
184
  - tests/ppm_reader_test.rb
166
185
  - tests/rgb_color_metrics_test.rb
167
186
  - tests/rgb_triple_test.rb
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- rvm:
2
- - 2.0
3
- - 2.1
4
- - 2.2
5
- - 2.3
6
- - 2.4
7
- - 2.5
8
- - 2.6
9
- - ruby-head
10
- - jruby
11
- matrix:
12
- allow_failures:
13
- - rvm: ruby-head
14
- - rvm: jruby
15
- sudo: false