rainbow 2.2.1 → 3.1.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 +5 -5
- data/Changelog.md +60 -42
- data/README.markdown +64 -172
- data/lib/rainbow/color.rb +43 -32
- data/lib/rainbow/ext/string.rb +16 -4
- data/lib/rainbow/global.rb +5 -1
- data/lib/rainbow/null_presenter.rb +88 -26
- data/lib/rainbow/presenter.rb +35 -17
- data/lib/rainbow/refinement.rb +14 -0
- data/lib/rainbow/string_utils.rb +10 -8
- data/lib/rainbow/version.rb +3 -1
- data/lib/rainbow/wrapper.rb +2 -2
- data/lib/rainbow/x11_color_names.rb +5 -4
- data/lib/rainbow.rb +2 -13
- metadata +21 -46
- data/.gitignore +0 -17
- data/.rubocop.yml +0 -14
- data/.travis.yml +0 -22
- data/Gemfile +0 -23
- data/Guardfile +0 -9
- data/Rakefile +0 -6
- data/ext/mkrf_conf.rb +0 -22
- data/lib/rainbow/legacy.rb +0 -15
- data/rainbow.gemspec +0 -24
- data/spec/integration/instance_spec.rb +0 -35
- data/spec/integration/rainbow_spec.rb +0 -149
- data/spec/integration/string_spec.rb +0 -80
- data/spec/spec_helper.rb +0 -6
- data/spec/support/presenter_shared_examples.rb +0 -9
- data/spec/unit/color_spec.rb +0 -301
- data/spec/unit/namespace_spec.rb +0 -31
- data/spec/unit/null_presenter_spec.rb +0 -93
- data/spec/unit/presenter_spec.rb +0 -179
- data/spec/unit/string_utils_spec.rb +0 -62
- data/spec/unit/wrapper_spec.rb +0 -34
@@ -1,38 +1,100 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module Rainbow
|
3
4
|
class NullPresenter < ::String
|
5
|
+
def color(*_values)
|
6
|
+
self
|
7
|
+
end
|
8
|
+
|
9
|
+
def background(*_values)
|
10
|
+
self
|
11
|
+
end
|
12
|
+
|
13
|
+
def reset
|
14
|
+
self
|
15
|
+
end
|
16
|
+
|
17
|
+
def bright
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def faint
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
def italic
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
29
|
+
def underline
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def blink
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
def inverse
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
def hide
|
42
|
+
self
|
43
|
+
end
|
4
44
|
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
def green
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
45
|
+
def cross_out
|
46
|
+
self
|
47
|
+
end
|
48
|
+
|
49
|
+
def black
|
50
|
+
self
|
51
|
+
end
|
52
|
+
|
53
|
+
def red
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
57
|
+
def green
|
58
|
+
self
|
59
|
+
end
|
60
|
+
|
61
|
+
def yellow
|
62
|
+
self
|
63
|
+
end
|
64
|
+
|
65
|
+
def blue
|
66
|
+
self
|
67
|
+
end
|
68
|
+
|
69
|
+
def magenta
|
70
|
+
self
|
71
|
+
end
|
72
|
+
|
73
|
+
def cyan
|
74
|
+
self
|
75
|
+
end
|
76
|
+
|
77
|
+
def white
|
78
|
+
self
|
79
|
+
end
|
80
|
+
|
81
|
+
def method_missing(method_name, *args)
|
82
|
+
if Color::X11Named.color_names.include?(method_name) && args.empty?
|
26
83
|
self
|
27
84
|
else
|
28
85
|
super
|
29
86
|
end
|
30
87
|
end
|
31
88
|
|
32
|
-
|
33
|
-
|
34
|
-
|
89
|
+
def respond_to_missing?(method_name, *args)
|
90
|
+
Color::X11Named.color_names.include?(method_name) && args.empty? || super
|
91
|
+
end
|
35
92
|
|
93
|
+
alias foreground color
|
94
|
+
alias fg color
|
95
|
+
alias bg background
|
96
|
+
alias bold bright
|
97
|
+
alias dark faint
|
98
|
+
alias strike cross_out
|
36
99
|
end
|
37
|
-
|
38
100
|
end
|
data/lib/rainbow/presenter.rb
CHANGED
@@ -1,35 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'string_utils'
|
2
4
|
require_relative 'x11_color_names'
|
3
5
|
require_relative 'color'
|
4
6
|
|
5
7
|
module Rainbow
|
6
|
-
|
7
8
|
class Presenter < ::String
|
8
|
-
|
9
9
|
TERM_EFFECTS = {
|
10
|
-
reset:
|
11
|
-
bright:
|
12
|
-
|
10
|
+
reset: 0,
|
11
|
+
bright: 1,
|
12
|
+
faint: 2,
|
13
|
+
italic: 3,
|
13
14
|
underline: 4,
|
14
|
-
blink:
|
15
|
-
inverse:
|
16
|
-
hide:
|
17
|
-
|
15
|
+
blink: 5,
|
16
|
+
inverse: 7,
|
17
|
+
hide: 8,
|
18
|
+
cross_out: 9
|
19
|
+
}.freeze
|
18
20
|
|
19
21
|
# Sets color of this text.
|
20
22
|
def color(*values)
|
21
23
|
wrap_with_sgr(Color.build(:foreground, values).codes)
|
22
24
|
end
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
+
alias foreground color
|
27
|
+
alias fg color
|
26
28
|
|
27
29
|
# Sets background color of this text.
|
28
30
|
def background(*values)
|
29
31
|
wrap_with_sgr(Color.build(:background, values).codes)
|
30
32
|
end
|
31
33
|
|
32
|
-
|
34
|
+
alias bg background
|
33
35
|
|
34
36
|
# Resets terminal to default colors/backgrounds.
|
35
37
|
#
|
@@ -44,7 +46,15 @@ module Rainbow
|
|
44
46
|
wrap_with_sgr(TERM_EFFECTS[:bright])
|
45
47
|
end
|
46
48
|
|
47
|
-
|
49
|
+
alias bold bright
|
50
|
+
|
51
|
+
# Turns on faint/dark for this text (not well supported by terminal
|
52
|
+
# emulators).
|
53
|
+
def faint
|
54
|
+
wrap_with_sgr(TERM_EFFECTS[:faint])
|
55
|
+
end
|
56
|
+
|
57
|
+
alias dark faint
|
48
58
|
|
49
59
|
# Turns on italic style for this text (not well supported by terminal
|
50
60
|
# emulators).
|
@@ -73,6 +83,12 @@ module Rainbow
|
|
73
83
|
wrap_with_sgr(TERM_EFFECTS[:hide])
|
74
84
|
end
|
75
85
|
|
86
|
+
def cross_out
|
87
|
+
wrap_with_sgr(TERM_EFFECTS[:cross_out])
|
88
|
+
end
|
89
|
+
|
90
|
+
alias strike cross_out
|
91
|
+
|
76
92
|
def black
|
77
93
|
color(:black)
|
78
94
|
end
|
@@ -107,20 +123,22 @@ module Rainbow
|
|
107
123
|
|
108
124
|
# We take care of X11 color method call here.
|
109
125
|
# Such as #aqua, #ghostwhite.
|
110
|
-
def method_missing(method_name
|
111
|
-
if Color::X11Named.color_names.include?
|
126
|
+
def method_missing(method_name, *args)
|
127
|
+
if Color::X11Named.color_names.include?(method_name) && args.empty?
|
112
128
|
color(method_name)
|
113
129
|
else
|
114
130
|
super
|
115
131
|
end
|
116
132
|
end
|
117
133
|
|
134
|
+
def respond_to_missing?(method_name, *args)
|
135
|
+
Color::X11Named.color_names.include?(method_name) && args.empty? || super
|
136
|
+
end
|
137
|
+
|
118
138
|
private
|
119
139
|
|
120
140
|
def wrap_with_sgr(codes) #:nodoc:
|
121
141
|
self.class.new(StringUtils.wrap_with_sgr(self, [*codes]))
|
122
142
|
end
|
123
|
-
|
124
143
|
end
|
125
|
-
|
126
144
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'presenter'
|
4
|
+
require_relative 'global'
|
5
|
+
|
6
|
+
module Rainbow
|
7
|
+
refine String do
|
8
|
+
Presenter.instance_methods(false).each do |method_name|
|
9
|
+
define_method(method_name) do |*args|
|
10
|
+
::Rainbow.global.wrap(self).send(method_name, *args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/rainbow/string_utils.rb
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Rainbow
|
2
4
|
class StringUtils
|
3
|
-
|
4
5
|
def self.wrap_with_sgr(string, codes)
|
5
6
|
return string if codes.empty?
|
6
7
|
|
7
8
|
seq = "\e[" + codes.join(";") + "m"
|
8
|
-
match = string.match(/^(\e\[([\d;]+)m)*/)
|
9
|
-
seq_pos = match.end(0)
|
10
|
-
string = string[0...seq_pos] + seq + string[seq_pos..-1]
|
11
9
|
|
12
|
-
|
13
|
-
string = string + "\e[0m"
|
14
|
-
end
|
10
|
+
string = string.sub(/^(\e\[([\d;]+)m)*/) { |m| m + seq }
|
15
11
|
|
16
|
-
string
|
12
|
+
return string if string.end_with? "\e[0m"
|
13
|
+
|
14
|
+
string + "\e[0m"
|
17
15
|
end
|
18
16
|
|
17
|
+
def self.uncolor(string)
|
18
|
+
# See http://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed
|
19
|
+
string.gsub(/\e\[[0-9;]*m/, '')
|
20
|
+
end
|
19
21
|
end
|
20
22
|
end
|
data/lib/rainbow/version.rb
CHANGED
data/lib/rainbow/wrapper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module Rainbow
|
3
4
|
module X11ColorNames
|
4
|
-
NAMES= {
|
5
|
+
NAMES = {
|
5
6
|
aqua: [0, 255, 255],
|
6
7
|
aquamarine: [127, 255, 212],
|
7
8
|
mediumaquamarine: [102, 205, 170],
|
@@ -147,6 +148,6 @@ module Rainbow
|
|
147
148
|
yellow: [255, 255, 0],
|
148
149
|
lightyellow: [255, 255, 224],
|
149
150
|
greenyellow: [173, 255, 47]
|
150
|
-
}
|
151
|
+
}.freeze
|
151
152
|
end
|
152
|
-
end
|
153
|
+
end
|
data/lib/rainbow.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'rainbow/global'
|
2
|
-
require_relative 'rainbow/legacy'
|
3
4
|
|
4
5
|
module Rainbow
|
5
|
-
|
6
6
|
def self.new
|
7
7
|
Wrapper.new(global.enabled)
|
8
8
|
end
|
@@ -10,15 +10,4 @@ module Rainbow
|
|
10
10
|
self.enabled = false unless STDOUT.tty? && STDERR.tty?
|
11
11
|
self.enabled = false if ENV['TERM'] == 'dumb'
|
12
12
|
self.enabled = true if ENV['CLICOLOR_FORCE'] == '1'
|
13
|
-
|
14
|
-
# On Windows systems, try to load the local ANSI support library if Ruby version < 2
|
15
|
-
# Ruby 2.x on Windows includes ANSI support.
|
16
|
-
if RUBY_PLATFORM =~ /mswin|cygwin|mingw/ && RUBY_VERSION.to_i < 2
|
17
|
-
begin
|
18
|
-
require 'Win32/Console/ANSI'
|
19
|
-
rescue LoadError
|
20
|
-
self.enabled = false
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
13
|
end
|
metadata
CHANGED
@@ -1,103 +1,78 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rainbow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcin Kulik
|
8
|
-
|
8
|
+
- Olle Jonsson
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- -
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.3'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '3'
|
20
24
|
type: :development
|
21
25
|
prerelease: false
|
22
26
|
version_requirements: !ruby/object:Gem::Requirement
|
23
27
|
requirements:
|
24
|
-
- -
|
28
|
+
- - ">="
|
25
29
|
- !ruby/object:Gem::Version
|
26
30
|
version: '1.3'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
27
34
|
description: Colorize printed text on ANSI terminals
|
28
35
|
email:
|
29
36
|
- m@ku1ik.com
|
30
37
|
executables: []
|
31
|
-
extensions:
|
32
|
-
- ext/mkrf_conf.rb
|
38
|
+
extensions: []
|
33
39
|
extra_rdoc_files: []
|
34
40
|
files:
|
35
|
-
- .gitignore
|
36
|
-
- .rubocop.yml
|
37
|
-
- .travis.yml
|
38
41
|
- Changelog.md
|
39
|
-
- Gemfile
|
40
|
-
- Guardfile
|
41
42
|
- LICENSE
|
42
43
|
- README.markdown
|
43
|
-
- Rakefile
|
44
|
-
- ext/mkrf_conf.rb
|
45
44
|
- lib/rainbow.rb
|
46
45
|
- lib/rainbow/color.rb
|
47
46
|
- lib/rainbow/ext/string.rb
|
48
47
|
- lib/rainbow/global.rb
|
49
|
-
- lib/rainbow/legacy.rb
|
50
48
|
- lib/rainbow/null_presenter.rb
|
51
49
|
- lib/rainbow/presenter.rb
|
50
|
+
- lib/rainbow/refinement.rb
|
52
51
|
- lib/rainbow/string_utils.rb
|
53
52
|
- lib/rainbow/version.rb
|
54
53
|
- lib/rainbow/wrapper.rb
|
55
54
|
- lib/rainbow/x11_color_names.rb
|
56
|
-
- rainbow.gemspec
|
57
|
-
- spec/integration/instance_spec.rb
|
58
|
-
- spec/integration/rainbow_spec.rb
|
59
|
-
- spec/integration/string_spec.rb
|
60
|
-
- spec/spec_helper.rb
|
61
|
-
- spec/support/presenter_shared_examples.rb
|
62
|
-
- spec/unit/color_spec.rb
|
63
|
-
- spec/unit/namespace_spec.rb
|
64
|
-
- spec/unit/null_presenter_spec.rb
|
65
|
-
- spec/unit/presenter_spec.rb
|
66
|
-
- spec/unit/string_utils_spec.rb
|
67
|
-
- spec/unit/wrapper_spec.rb
|
68
55
|
homepage: https://github.com/sickill/rainbow
|
69
56
|
licenses:
|
70
57
|
- MIT
|
71
58
|
metadata: {}
|
72
|
-
post_install_message:
|
59
|
+
post_install_message:
|
73
60
|
rdoc_options: []
|
74
61
|
require_paths:
|
75
62
|
- lib
|
76
63
|
required_ruby_version: !ruby/object:Gem::Requirement
|
77
64
|
requirements:
|
78
|
-
- -
|
65
|
+
- - ">="
|
79
66
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
67
|
+
version: 2.3.0
|
81
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
69
|
requirements:
|
83
|
-
- -
|
70
|
+
- - ">="
|
84
71
|
- !ruby/object:Gem::Version
|
85
72
|
version: '0'
|
86
73
|
requirements: []
|
87
|
-
|
88
|
-
|
89
|
-
signing_key:
|
74
|
+
rubygems_version: 3.0.9
|
75
|
+
signing_key:
|
90
76
|
specification_version: 4
|
91
77
|
summary: Colorize printed text on ANSI terminals
|
92
|
-
test_files:
|
93
|
-
- spec/integration/instance_spec.rb
|
94
|
-
- spec/integration/rainbow_spec.rb
|
95
|
-
- spec/integration/string_spec.rb
|
96
|
-
- spec/spec_helper.rb
|
97
|
-
- spec/support/presenter_shared_examples.rb
|
98
|
-
- spec/unit/color_spec.rb
|
99
|
-
- spec/unit/namespace_spec.rb
|
100
|
-
- spec/unit/null_presenter_spec.rb
|
101
|
-
- spec/unit/presenter_spec.rb
|
102
|
-
- spec/unit/string_utils_spec.rb
|
103
|
-
- spec/unit/wrapper_spec.rb
|
78
|
+
test_files: []
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
data/.travis.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache:
|
3
|
-
- bundler
|
4
|
-
before_install:
|
5
|
-
- gem update --system
|
6
|
-
- gem install bundler
|
7
|
-
bundler_args: --without guard development
|
8
|
-
|
9
|
-
matrix:
|
10
|
-
include:
|
11
|
-
- rvm: 2.0.0
|
12
|
-
- rvm: 2.1.9
|
13
|
-
- rvm: 2.2.6
|
14
|
-
- rvm: 2.3.3
|
15
|
-
- rvm: 2.4.0
|
16
|
-
- rvm: jruby-9.1.6.0
|
17
|
-
jdk: oraclejdk8
|
18
|
-
env:
|
19
|
-
- JRUBY_OPTS=--debug
|
20
|
-
- rvm: 2.2.6
|
21
|
-
install: true # This skips 'bundle install'
|
22
|
-
script: gem build rainbow && gem install *.gem
|
data/Gemfile
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in rainbow.gemspec
|
4
|
-
gemspec
|
5
|
-
|
6
|
-
gem 'rake'
|
7
|
-
gem 'coveralls', require: false
|
8
|
-
gem 'mime-types', '< 2.0.0', platforms: [:ruby_18]
|
9
|
-
gem 'rspec'
|
10
|
-
|
11
|
-
group :development do
|
12
|
-
gem 'mutant-rspec'
|
13
|
-
end
|
14
|
-
|
15
|
-
group :guard do
|
16
|
-
gem 'guard'
|
17
|
-
gem 'guard-rspec'
|
18
|
-
end
|
19
|
-
|
20
|
-
platform :rbx do
|
21
|
-
gem 'json'
|
22
|
-
gem 'rubysl'
|
23
|
-
end
|
data/Guardfile
DELETED
data/Rakefile
DELETED
data/ext/mkrf_conf.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rubygems/command'
|
3
|
-
require 'rubygems/dependency_installer'
|
4
|
-
|
5
|
-
begin
|
6
|
-
Gem::Command.build_args = ARGV
|
7
|
-
rescue NoMethodError
|
8
|
-
exit 1
|
9
|
-
end
|
10
|
-
|
11
|
-
installer = Gem::DependencyInstaller.new
|
12
|
-
|
13
|
-
begin
|
14
|
-
if RUBY_PLATFORM =~ /mswin|cygwin|mingw/ && RUBY_VERSION.to_i < 2
|
15
|
-
installer.install('windows-pr')
|
16
|
-
installer.install('win32console')
|
17
|
-
end
|
18
|
-
rescue
|
19
|
-
exit 1
|
20
|
-
end
|
21
|
-
|
22
|
-
File.write(File.join(File.dirname(__FILE__), 'Rakefile'), "task :default\n")
|
data/lib/rainbow/legacy.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Sickill
|
2
|
-
module Rainbow
|
3
|
-
|
4
|
-
def self.enabled=(value)
|
5
|
-
STDERR.puts("Rainbow gem notice: Sickill::Rainbow.enabled= is " \
|
6
|
-
"deprecated, use Rainbow.enabled= instead.")
|
7
|
-
::Rainbow.enabled = value
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.enabled
|
11
|
-
::Rainbow.enabled
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
data/rainbow.gemspec
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'rainbow/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "rainbow"
|
8
|
-
spec.version = Rainbow::VERSION
|
9
|
-
spec.authors = ["Marcin Kulik"]
|
10
|
-
spec.email = ["m@ku1ik.com"]
|
11
|
-
spec.description = %q(Colorize printed text on ANSI terminals)
|
12
|
-
spec.summary = %q(Colorize printed text on ANSI terminals)
|
13
|
-
spec.homepage = "https://github.com/sickill/rainbow"
|
14
|
-
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version = '>= 1.9.2'
|
16
|
-
|
17
|
-
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
18
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
-
spec.require_paths = ["lib"]
|
21
|
-
|
22
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
23
|
-
spec.extensions = ["ext/mkrf_conf.rb"]
|
24
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'rainbow'
|
3
|
-
|
4
|
-
describe 'Custom Rainbow instance' do
|
5
|
-
|
6
|
-
it 'inherits enabled state from the global instance' do
|
7
|
-
Rainbow.enabled = :yep
|
8
|
-
expect(Rainbow.new.enabled).to eq(:yep)
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'tracks its own state separately from the global instance' do
|
12
|
-
Rainbow.enabled = :yep
|
13
|
-
rainbow = Rainbow.new
|
14
|
-
expect(Rainbow.new.enabled).to eq(:yep)
|
15
|
-
|
16
|
-
rainbow.enabled = :nope
|
17
|
-
expect(Rainbow.enabled).to eq(:yep)
|
18
|
-
expect(rainbow.enabled).to eq(:nope)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'wraps string with escape codes when enabled' do
|
22
|
-
rainbow = Rainbow.new
|
23
|
-
rainbow.enabled = true
|
24
|
-
|
25
|
-
expect(rainbow.wrap('hello').green).to eq("\e[32mhello\e[0m")
|
26
|
-
end
|
27
|
-
|
28
|
-
it "doesn't wrap string with any escape code when disabled" do
|
29
|
-
rainbow = Rainbow.new
|
30
|
-
rainbow.enabled = false
|
31
|
-
|
32
|
-
expect(rainbow.wrap('hello').green).to eq('hello')
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|