rainbow 3.0.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,157 +0,0 @@
1
- require 'spec_helper'
2
- require 'rainbow'
3
-
4
- RSpec.describe 'Rainbow() wrapper' do
5
- before do
6
- Rainbow.enabled = true
7
- end
8
-
9
- it 'allows foreground coloring by color number' do
10
- result = Rainbow('hello').foreground(5)
11
- expect(result).to eq("\e[35mhello\e[0m")
12
- end
13
-
14
- it 'allows foreground coloring by color name' do
15
- result = Rainbow('hello').foreground(:red)
16
- expect(result).to eq("\e[31mhello\e[0m")
17
- end
18
-
19
- it 'allows foreground coloring directly by ANSI method name' do
20
- result = Rainbow('hello').red
21
- expect(result).to eq("\e[31mhello\e[0m")
22
- end
23
-
24
- it 'allows foreground coloring directly by X11 method name' do
25
- result = Rainbow('hello').midnightblue
26
- expect(result).to eq("\e[38;5;18mhello\e[0m")
27
- end
28
-
29
- it 'allows foreground coloring by ANSI color name (color alias)' do
30
- result = Rainbow('hello').color(:red)
31
- expect(result).to eq("\e[31mhello\e[0m")
32
- end
33
-
34
- it 'allows foreground coloring by color name (colour alias)' do
35
- result = Rainbow('hello').colour(:red)
36
- expect(result).to eq("\e[31mhello\e[0m")
37
- end
38
-
39
- it 'allows foreground coloring by X11 color name' do
40
- result = Rainbow('hello').foreground(:midnightblue)
41
- expect(result).to eq("\e[38;5;18mhello\e[0m")
42
- end
43
-
44
- it 'allows foreground coloring by color rgb' do
45
- result = Rainbow('hello').foreground(255, 128, 64)
46
- expect(result).to eq("\e[38;5;215mhello\e[0m")
47
- end
48
-
49
- it 'allows foreground coloring by color rgb (hex string)' do
50
- result = Rainbow('hello').foreground('ff8040')
51
- expect(result).to eq("\e[38;5;215mhello\e[0m")
52
- end
53
-
54
- it 'allows background coloring by color number' do
55
- result = Rainbow('hello').background(3)
56
- expect(result).to eq("\e[43mhello\e[0m")
57
- end
58
-
59
- it 'allows background coloring by ANSI color name' do
60
- result = Rainbow('hello').background(:green)
61
- expect(result).to eq("\e[42mhello\e[0m")
62
- end
63
-
64
- it 'allows background coloring by X11 color name' do
65
- result = Rainbow('hello').background(:midnightblue)
66
- expect(result).to eq("\e[48;5;18mhello\e[0m")
67
- end
68
-
69
- it 'allows background coloring by color rgb' do
70
- result = Rainbow('hello').background(255, 128, 64)
71
- expect(result).to eq("\e[48;5;215mhello\e[0m")
72
- end
73
-
74
- it 'allows making text bright' do
75
- result = Rainbow('hello').bright
76
- expect(result).to eq("\e[1mhello\e[0m")
77
- end
78
-
79
- it 'allows making text faint' do
80
- result = Rainbow('hello').faint
81
- expect(result).to eq("\e[2mhello\e[0m")
82
- end
83
-
84
- it 'allows making text italic' do
85
- result = Rainbow('hello').italic
86
- expect(result).to eq("\e[3mhello\e[0m")
87
- end
88
-
89
- it 'allows making text underlined' do
90
- result = Rainbow('hello').underline
91
- expect(result).to eq("\e[4mhello\e[0m")
92
- end
93
-
94
- it 'allows making text blinking' do
95
- result = Rainbow('hello').blink
96
- expect(result).to eq("\e[5mhello\e[0m")
97
- end
98
-
99
- it 'allows making text inversed' do
100
- result = Rainbow('hello').inverse
101
- expect(result).to eq("\e[7mhello\e[0m")
102
- end
103
-
104
- it 'allows making text hidden' do
105
- result = Rainbow('hello').hide
106
- expect(result).to eq("\e[8mhello\e[0m")
107
- end
108
-
109
- it 'allows resetting all the attributes' do
110
- result = Rainbow('hello').reset
111
- expect(result).to eq("\e[0mhello\e[0m")
112
- end
113
-
114
- it 'allows chaining' do
115
- result = Rainbow('hello')
116
- .foreground(:red)
117
- .bright
118
- .bold
119
- .faint
120
- .dark
121
- .italic
122
- .background('#ff8040')
123
- .underline
124
- .color(:blue)
125
- .blink
126
- .inverse
127
- .hide
128
-
129
- expect(result).to eq(
130
- "\e[31m\e[1m\e[1m\e[2m\e[2m\e[3m\e[48;5;215m\e[4m\e[34m\e[5m\e[7m\e[8mhello\e[0m"
131
- )
132
- end
133
-
134
- context "when Rainbow is disabled" do
135
- before do
136
- Rainbow.enabled = false
137
- end
138
-
139
- it "allows chaining but doesn't wrap with escape codes" do
140
- result = Rainbow('hello')
141
- .foreground(:red)
142
- .bright
143
- .bold
144
- .faint
145
- .dark
146
- .italic
147
- .background('#ff8040')
148
- .underline
149
- .color(:blue)
150
- .blink
151
- .inverse
152
- .hide
153
-
154
- expect(result).to eq('hello')
155
- end
156
- end
157
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
- require 'rainbow'
3
-
4
- RSpec.describe 'Rainbow refinement' do
5
- before do
6
- require 'rainbow/refinement'
7
-
8
- class ScopeNotIncluded
9
- def self.red_hello
10
- 'hello'.red
11
- end
12
- end
13
-
14
- class ScopeIncluded
15
- using Rainbow
16
- def self.red_hello
17
- 'hello'.red
18
- end
19
- end
20
- end
21
-
22
- it 'is not active by default' do
23
- expect do
24
- ScopeNotIncluded.red_hello
25
- end.to raise_error(NoMethodError)
26
- end
27
-
28
- it 'is available when used' do
29
- expect(ScopeIncluded.red_hello).to eq(Rainbow('hello').red)
30
- end
31
-
32
- it 'respects disabled state' do
33
- Rainbow.enabled = false
34
- expect(ScopeIncluded.red_hello).to eq('hello')
35
- end
36
- end
@@ -1,81 +0,0 @@
1
- require 'spec_helper'
2
- require 'rainbow/ext/string'
3
-
4
- RSpec.describe 'String mixin' do
5
- before do
6
- Rainbow.enabled = true
7
- end
8
-
9
- it 'proxies foreground to Rainbow().foreground' do
10
- expect('hello'.foreground(:red)).to eq(Rainbow('hello').foreground(:red))
11
- end
12
-
13
- it 'proxies color to Rainbow().color' do
14
- expect('hello'.color(:red)).to eq(Rainbow('hello').color(:red))
15
- end
16
-
17
- it 'proxies x11 color to Rainbow().color' do
18
- expect('hello'.color(:midnightblue)).to eq(Rainbow('hello').color(:midnightblue))
19
- end
20
-
21
- it 'proxies colour to Rainbow().colour' do
22
- expect('hello'.colour(:red)).to eq(Rainbow('hello').colour(:red))
23
- end
24
-
25
- it 'proxies background to Rainbow().background' do
26
- expect('hello'.background(:red)).to eq(Rainbow('hello').background(:red))
27
- end
28
-
29
- it 'proxies bright to Rainbow().bright' do
30
- expect('hello'.bright).to eq(Rainbow('hello').bright)
31
- end
32
-
33
- it 'proxies faint to Rainbow().faint' do
34
- expect('hello'.faint).to eq(Rainbow('hello').faint)
35
- end
36
-
37
- it 'proxies italic to Rainbow().italic' do
38
- expect('hello'.italic).to eq(Rainbow('hello').italic)
39
- end
40
-
41
- it 'proxies underline to Rainbow().underline' do
42
- expect('hello'.underline).to eq(Rainbow('hello').underline)
43
- end
44
-
45
- it 'proxies blink to Rainbow().blink' do
46
- expect('hello'.blink).to eq(Rainbow('hello').blink)
47
- end
48
-
49
- it 'proxies inverse to Rainbow().inverse' do
50
- expect('hello'.inverse).to eq(Rainbow('hello').inverse)
51
- end
52
-
53
- it 'proxies hide to Rainbow().hide' do
54
- expect('hello'.hide).to eq(Rainbow('hello').hide)
55
- end
56
-
57
- it 'proxies reset to Rainbow().reset' do
58
- expect('hello'.reset).to eq(Rainbow('hello').reset)
59
- end
60
-
61
- context "when Rainbow is disabled" do
62
- before do
63
- Rainbow.enabled = false
64
- end
65
-
66
- it "allows chaining but doesn't wrap with escape codes" do
67
- result = 'hello'
68
- .foreground(:red)
69
- .bright
70
- .italic
71
- .background('#ff8040')
72
- .underline
73
- .color(:blue)
74
- .blink
75
- .inverse
76
- .hide
77
-
78
- expect(result).to eq('hello')
79
- end
80
- end
81
- end
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
- require 'rainbow'
3
-
4
- RSpec.describe 'uncolor method' do
5
-
6
- it 'strips ansi color escape code' do
7
- expect(Rainbow.uncolor("\e[35mhello\e[0mm")).to eq 'hellom'
8
- end
9
-
10
- it 'does not strip scroll down escape code' do
11
- expect(Rainbow.uncolor("\e[1Thello")).to eq "\e[1Thello"
12
- end
13
-
14
- end
data/spec/spec_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- if ENV["CI"] && (!defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby")
2
- require 'coveralls'
3
- Coveralls.wear!
4
- end
5
-
6
- Dir[File.expand_path('../support/**/*.rb', __FILE__)].each { |file| require file }
7
-
8
- RSpec.configure do |config|
9
- config.disable_monkey_patching!
10
- end
@@ -1,9 +0,0 @@
1
- RSpec.shared_examples_for "presenter with shortcut color methods" do
2
- %i[black red green yellow blue magenta cyan white aqua].each do |name|
3
- describe "##{name}" do
4
- subject { presenter.public_send(name) }
5
-
6
- it { should eq(presenter.color(name)) }
7
- end
8
- end
9
- end
@@ -1,296 +0,0 @@
1
- require 'spec_helper'
2
- require 'rainbow/color'
3
-
4
- module Rainbow
5
- RSpec.describe Color do
6
- describe '.build' do
7
- subject { described_class.build(ground, values) }
8
-
9
- let(:ground) { :foreground }
10
-
11
- context "when single fixnum given" do
12
- let(:values) { [1] }
13
-
14
- it { should be_instance_of(Color::Indexed) }
15
-
16
- specify { expect(subject.ground).to eq(ground) }
17
- specify { expect(subject.num).to eq(1) }
18
- end
19
-
20
- context "when single ansi symbol given" do
21
- let(:values) { [:red] }
22
-
23
- it { should be_instance_of(Color::Named) }
24
-
25
- specify { expect(subject.ground).to eq(ground) }
26
- specify { expect(subject.num).to eq(1) }
27
- end
28
-
29
- context "when single x11 symbol given" do
30
- let(:values) { [:midnightblue] }
31
-
32
- it { should be_instance_of(Color::X11Named) }
33
-
34
- specify { expect(subject.ground).to eq(ground) }
35
- specify { expect(subject.r).to eq(25) }
36
- specify { expect(subject.g).to eq(25) }
37
- specify { expect(subject.b).to eq(112) }
38
- end
39
-
40
- context "when single string given" do
41
- let(:values) { ['#deadcc'] }
42
-
43
- it { should be_instance_of(Color::RGB) }
44
-
45
- specify { expect(subject.ground).to eq(ground) }
46
- specify { expect(subject.r).to eq(222) }
47
- specify { expect(subject.g).to eq(173) }
48
- specify { expect(subject.b).to eq(204) }
49
- end
50
-
51
- context "when 2 elements" do
52
- let(:values) { [1, 2] }
53
-
54
- it 'raises ArgumentError' do
55
- expect { subject }.to raise_error(ArgumentError)
56
- end
57
- end
58
-
59
- context "when 3 elements given" do
60
- let(:values) { [1, 2, 3] }
61
-
62
- it { should be_instance_of(Color::RGB) }
63
-
64
- specify { expect(subject.ground).to eq(ground) }
65
- specify { expect(subject.r).to eq(1) }
66
- specify { expect(subject.g).to eq(2) }
67
- specify { expect(subject.b).to eq(3) }
68
- end
69
-
70
- context "when 4 elements" do
71
- let(:values) { [1, 2, 3, 4] }
72
-
73
- it 'raises ArgumentError' do
74
- expect { subject }.to raise_error(ArgumentError)
75
- end
76
- end
77
- end
78
- end
79
-
80
- RSpec.describe Color::Indexed do
81
- let(:color) { described_class.new(ground, 5) }
82
-
83
- describe '#codes' do
84
- subject { color.codes }
85
-
86
- context "when ground is :foreground" do
87
- let(:ground) { :foreground }
88
-
89
- it { should eq([35]) }
90
- end
91
-
92
- context "when ground is :background" do
93
- let(:ground) { :background }
94
-
95
- it { should eq([45]) }
96
- end
97
- end
98
- end
99
-
100
- RSpec.describe Color::Named do
101
- let(:color) { described_class.new(ground, name) }
102
-
103
- describe '#codes' do
104
- subject { color.codes }
105
-
106
- context "when ground is :foreground" do
107
- let(:ground) { :foreground }
108
-
109
- context "and name is :black" do
110
- let(:name) { :black }
111
-
112
- it { should eq([30]) }
113
- end
114
-
115
- context "and name is :red" do
116
- let(:name) { :red }
117
-
118
- it { should eq([31]) }
119
- end
120
-
121
- context "and name is :green" do
122
- let(:name) { :green }
123
-
124
- it { should eq([32]) }
125
- end
126
-
127
- context "and name is :yellow" do
128
- let(:name) { :yellow }
129
-
130
- it { should eq([33]) }
131
- end
132
-
133
- context "and name is :blue" do
134
- let(:name) { :blue }
135
-
136
- it { should eq([34]) }
137
- end
138
-
139
- context "and name is :magenta" do
140
- let(:name) { :magenta }
141
-
142
- it { should eq([35]) }
143
- end
144
-
145
- context "and name is :cyan" do
146
- let(:name) { :cyan }
147
-
148
- it { should eq([36]) }
149
- end
150
-
151
- context "and name is :white" do
152
- let(:name) { :white }
153
-
154
- it { should eq([37]) }
155
- end
156
-
157
- context "and name is invalid" do
158
- let(:name) { :foo }
159
-
160
- it 'raises ArgumentError' do
161
- expect { subject }.to raise_error(ArgumentError)
162
- end
163
- end
164
- end
165
-
166
- context "when ground is :background" do
167
- let(:ground) { :background }
168
-
169
- context "and name is :black" do
170
- let(:name) { :black }
171
-
172
- it { should eq([40]) }
173
- end
174
-
175
- context "and name is :red" do
176
- let(:name) { :red }
177
-
178
- it { should eq([41]) }
179
- end
180
-
181
- context "and name is :green" do
182
- let(:name) { :green }
183
-
184
- it { should eq([42]) }
185
- end
186
-
187
- context "and name is :yellow" do
188
- let(:name) { :yellow }
189
-
190
- it { should eq([43]) }
191
- end
192
-
193
- context "and name is :blue" do
194
- let(:name) { :blue }
195
-
196
- it { should eq([44]) }
197
- end
198
-
199
- context "and name is :magenta" do
200
- let(:name) { :magenta }
201
-
202
- it { should eq([45]) }
203
- end
204
-
205
- context "and name is :cyan" do
206
- let(:name) { :cyan }
207
-
208
- it { should eq([46]) }
209
- end
210
-
211
- context "and name is :white" do
212
- let(:name) { :white }
213
-
214
- it { should eq([47]) }
215
- end
216
-
217
- context "and name is invalid" do
218
- let(:name) { :foo }
219
-
220
- it 'raises ArgumentError' do
221
- expect { subject }.to raise_error(ArgumentError)
222
- end
223
- end
224
- end
225
- end
226
- end
227
-
228
- RSpec.describe Color::RGB do
229
- let(:color) { described_class.new(ground, r, g, b) }
230
-
231
- describe '#codes' do
232
- subject { color.codes }
233
-
234
- let(:ground) { :foreground }
235
- let(:r) { 0 }
236
- let(:g) { 128 }
237
- let(:b) { 255 }
238
-
239
- context "when ground is :foreground" do
240
- let(:ground) { :foreground }
241
-
242
- it { should eq([38, 5, 39]) }
243
- end
244
-
245
- context "when ground is :background" do
246
- let(:ground) { :background }
247
-
248
- it { should eq([48, 5, 39]) }
249
- end
250
-
251
- context "when a component is lower than 0" do
252
- let(:r) { -1 }
253
-
254
- it 'raises ArgumentError' do
255
- expect { subject }.to raise_error(ArgumentError)
256
- end
257
- end
258
-
259
- context "when a component is greater than 255" do
260
- let(:b) { 256 }
261
-
262
- it 'raises ArgumentError' do
263
- expect { subject }.to raise_error(ArgumentError)
264
- end
265
- end
266
- end
267
- end
268
-
269
- RSpec.describe Color::X11Named do
270
- let(:color) { described_class.new(ground, name) }
271
-
272
- describe '#codes' do
273
- subject { color.codes }
274
-
275
- context "when ground is :foreground" do
276
- let(:name) { :midnightblue }
277
- let(:ground) { :foreground }
278
- it { should eq([38, 5, 18]) }
279
- end
280
-
281
- context "when ground is :background" do
282
- let(:name) { :midnightblue }
283
- let(:ground) { :background }
284
- it { should eq([48, 5, 18]) }
285
- end
286
-
287
- context "when name is invalid" do
288
- let(:name) { :foo }
289
- let(:ground) { :background }
290
- it 'raises ArgumentError' do
291
- expect { subject }.to raise_error(ArgumentError)
292
- end
293
- end
294
- end
295
- end
296
- end