colorize 0.7.5 → 0.7.6
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 +4 -4
- data/CHANGELOG +3 -0
- data/README.md +26 -22
- data/colorize.gemspec +9 -5
- data/lib/colorize/class_methods.rb +36 -34
- data/lib/colorize/instance_methods.rb +16 -4
- data/test/test_colorize.rb +31 -5
- metadata +47 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e21c9389b1bb8d1cd8884565a5dbe6e2edb72d5
|
4
|
+
data.tar.gz: 87a1ccbaf344139c937dc2680d7825281c9f725b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfd3eeaed2fc6b03c1fdc11dd99a73a0f438dd1324786675630b7ef70d59edce22a699d0a249088a189158c9aa790605a6b3ef4184c9dd0c790d74b95123e40d
|
7
|
+
data.tar.gz: 5556fc5742cd26ae473b35787767f8dafcd1d1950fae81fa3723f44ea83890de10879ac540094ebeda1a592effdeff2a119cc87b0c5ed275c095a0ce62bc15c6
|
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
colorize [](http://badge.fury.io/rb/colorize) [](https://travis-ci.org/fazibear/colorize) [](https://codeclimate.com/github/fazibear/colorize)
|
1
|
+
colorize [](http://badge.fury.io/rb/colorize) [](https://travis-ci.org/fazibear/colorize) [](https://codeclimate.com/github/fazibear/colorize) [](https://codeclimate.com/github/fazibear/colorize)
|
2
2
|
========
|
3
|
-
|
3
|
+
|
4
4
|
Ruby String class extension. Adds methods to set text color, background color and, text effects on ruby console and command line output, using ANSI escape sequences.
|
5
5
|
|
6
6
|
features
|
7
7
|
--------
|
8
|
-
|
8
|
+
|
9
9
|
* change string color
|
10
10
|
* change string background
|
11
11
|
* change string effect
|
@@ -15,27 +15,31 @@ usage
|
|
15
15
|
|
16
16
|
Some usage samples:
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
```ruby
|
19
|
+
puts "This is blue".colorize(:blue)
|
20
|
+
puts "This is light blue".colorize(:light_blue)
|
21
|
+
puts "This is also blue".colorize(:color => :blue)
|
22
|
+
puts "This is light blue with red background".colorize(:color => :light_blue, :background => :red)
|
23
|
+
puts "This is light blue with red background".colorize(:light_blue ).colorize( :background => :red)
|
24
|
+
puts "This is blue text on red".blue.on_red
|
25
|
+
puts "This is red on blue".colorize(:red).on_blue
|
26
|
+
puts "This is red on blue and underline".colorize(:red).on_blue.underline
|
27
|
+
puts "This is blue text on red".blue.on_red.blink
|
28
|
+
puts "This is uncolorized".blue.on_red.uncolorize
|
29
|
+
```
|
28
30
|
|
29
31
|
Class methods:
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
```ruby
|
34
|
+
String.colors # return array of all possible colors names
|
35
|
+
String.modes # return array of all possible modes
|
36
|
+
String.color_samples # displays color samples in all combinations
|
37
|
+
String.disable_colorization # check if colorization is disabled
|
38
|
+
String.disable_colorization = false # enable colorization
|
39
|
+
String.disable_colorization false # enable colorization
|
40
|
+
String.disable_colorization = true # disable colorization
|
41
|
+
String.disable_colorization true # disable colorization
|
42
|
+
```
|
39
43
|
|
40
44
|
requirements
|
41
45
|
------------
|
@@ -52,7 +56,7 @@ install
|
|
52
56
|
license
|
53
57
|
-------
|
54
58
|
|
55
|
-
Copyright (C) 2007-2015
|
59
|
+
Copyright (C) 2007-2015 Michał Kalbarczyk
|
56
60
|
|
57
61
|
This program is free software; you can redistribute it and/or modify
|
58
62
|
it under the terms of the GNU General Public License as published by
|
data/colorize.gemspec
CHANGED
@@ -1,19 +1,23 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'colorize'
|
3
|
-
s.version = '0.7.
|
3
|
+
s.version = '0.7.6'
|
4
4
|
|
5
|
-
s.authors = ['
|
5
|
+
s.authors = ['Michał Kalbarczyk']
|
6
6
|
s.email = 'fazibear@gmail.com'
|
7
|
-
|
7
|
+
|
8
8
|
s.date = Time.now.strftime("%Y-%m-%d")
|
9
|
-
|
9
|
+
|
10
10
|
s.homepage = 'http://github.com/fazibear/colorize'
|
11
11
|
s.description = 'Ruby String class extension. Adds methods to set text color, background color and, text effects on ruby console and command line output, using ANSI escape sequences.'
|
12
12
|
s.summary = 'Add color methods to String class'
|
13
13
|
s.license = 'GPL-2'
|
14
14
|
|
15
15
|
s.require_paths = ['lib']
|
16
|
-
|
16
|
+
|
17
|
+
s.add_development_dependency 'rake', '~> 0'
|
18
|
+
s.add_development_dependency 'minitest', '~> 0'
|
19
|
+
s.add_development_dependency 'codeclimate-test-reporter', '~> 0'
|
20
|
+
|
17
21
|
s.files = [
|
18
22
|
'LICENSE',
|
19
23
|
'CHANGELOG',
|
@@ -19,6 +19,39 @@ module Colorize
|
|
19
19
|
@disable_colorization = (value || false)
|
20
20
|
end
|
21
21
|
|
22
|
+
#
|
23
|
+
# Return array of available colors used by colorize
|
24
|
+
#
|
25
|
+
def colors
|
26
|
+
color_codes.keys
|
27
|
+
end
|
28
|
+
|
29
|
+
#
|
30
|
+
# Return array of available modes used by colorize
|
31
|
+
#
|
32
|
+
def modes
|
33
|
+
mode_codes.keys
|
34
|
+
end
|
35
|
+
|
36
|
+
#
|
37
|
+
# Display color samples
|
38
|
+
#
|
39
|
+
def color_samples
|
40
|
+
colors.permutation(2).each do |background, color|
|
41
|
+
sample_text = "#{color.inspect.rjust(15)} on #{background.inspect.ljust(15)}"
|
42
|
+
puts "#{sample_text.colorize(:color => color, :background => background)} #{sample_text}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Method removed, raise NoMethodError
|
48
|
+
#
|
49
|
+
def color_matrix(txt = '')
|
50
|
+
fail NoMethodError, '#color_matrix method was removed, try #color_samples instead'
|
51
|
+
end
|
52
|
+
|
53
|
+
# private
|
54
|
+
|
22
55
|
#
|
23
56
|
# Color codes hash
|
24
57
|
#
|
@@ -36,13 +69,6 @@ module Colorize
|
|
36
69
|
}
|
37
70
|
end
|
38
71
|
|
39
|
-
#
|
40
|
-
# Return array of available colors used by colorize
|
41
|
-
#
|
42
|
-
def colors
|
43
|
-
color_codes.keys
|
44
|
-
end
|
45
|
-
|
46
72
|
#
|
47
73
|
# Mode codes hash
|
48
74
|
#
|
@@ -56,16 +82,9 @@ module Colorize
|
|
56
82
|
:hide => 8 # Hide text (foreground color would be the same as background)
|
57
83
|
}
|
58
84
|
end
|
59
|
-
|
60
|
-
#
|
61
|
-
# Return array of available modes used by colorize
|
62
|
-
#
|
63
|
-
def modes
|
64
|
-
mode_codes.keys
|
65
|
-
end
|
66
|
-
|
85
|
+
|
67
86
|
#
|
68
|
-
#
|
87
|
+
# Generate color and on_color methods
|
69
88
|
#
|
70
89
|
def color_methods
|
71
90
|
colors.each do |key|
|
@@ -82,7 +101,7 @@ module Colorize
|
|
82
101
|
end
|
83
102
|
|
84
103
|
#
|
85
|
-
#
|
104
|
+
# Generate modes methods
|
86
105
|
#
|
87
106
|
def modes_methods
|
88
107
|
modes.each do |key|
|
@@ -93,22 +112,5 @@ module Colorize
|
|
93
112
|
end
|
94
113
|
end
|
95
114
|
end
|
96
|
-
|
97
|
-
#
|
98
|
-
# Display color samples
|
99
|
-
#
|
100
|
-
def color_samples
|
101
|
-
colors.permutation(2).each do |background, color|
|
102
|
-
sample_text = "#{color.inspect.rjust(15)} on #{background.inspect.ljust(15)}"
|
103
|
-
puts "#{sample_text.colorize(:color => color, :background => background)} #{sample_text}"
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
#
|
108
|
-
# Method removed, raise NoMethodError
|
109
|
-
#
|
110
|
-
def color_matrix(txt = '')
|
111
|
-
fail NoMethodError, '#color_matrix method was removed, try #color_samples instead'
|
112
|
-
end
|
113
115
|
end
|
114
116
|
end
|
@@ -32,7 +32,7 @@ module Colorize
|
|
32
32
|
#
|
33
33
|
def uncolorize
|
34
34
|
scan_for_colors.inject('') do |str, match|
|
35
|
-
str <<
|
35
|
+
str << match[3]
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -40,7 +40,9 @@ module Colorize
|
|
40
40
|
# Return true if string is colorized
|
41
41
|
#
|
42
42
|
def colorized?
|
43
|
-
scan_for_colors.
|
43
|
+
scan_for_colors.inject([]) do |colors, match|
|
44
|
+
colors << match.tap(&:pop)
|
45
|
+
end.flatten.compact.any?
|
44
46
|
end
|
45
47
|
|
46
48
|
private
|
@@ -52,7 +54,6 @@ module Colorize
|
|
52
54
|
match[0] ||= mode(:default)
|
53
55
|
match[1] ||= color(:default)
|
54
56
|
match[2] ||= background_color(:default)
|
55
|
-
match[3] ||= match[4]
|
56
57
|
end
|
57
58
|
|
58
59
|
#
|
@@ -106,7 +107,18 @@ module Colorize
|
|
106
107
|
# Scan for colorized string
|
107
108
|
#
|
108
109
|
def scan_for_colors
|
109
|
-
scan(/\033\[([0-9
|
110
|
+
scan(/\033\[([0-9;]+)m(.+?)\033\[0m|([^\033]+)/m).map do |match|
|
111
|
+
split_colors(match)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def split_colors(match)
|
116
|
+
colors = (match[0] || "").split(';')
|
117
|
+
Array.new(4).tap do |array|
|
118
|
+
array[0], array[1], array[2] = colors if colors.length == 3
|
119
|
+
array[1] = colors if colors.length == 1
|
120
|
+
array[3] = match[1] || match[2]
|
121
|
+
end
|
110
122
|
end
|
111
123
|
|
112
124
|
#
|
data/test/test_colorize.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require "codeclimate-test-reporter"
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
4
|
+
require "minitest/autorun"
|
2
5
|
require File.dirname(__FILE__) + '/../lib/colorize'
|
3
6
|
|
4
|
-
class TestColorize < Test
|
7
|
+
class TestColorize < Minitest::Test
|
5
8
|
def test_blue_symbol
|
6
9
|
assert_equal 'This is blue'.colorize(:blue),
|
7
10
|
"\e[0;34;49mThis is blue\e[0m"
|
@@ -72,6 +75,8 @@ class TestColorize < Test::Unit::TestCase
|
|
72
75
|
assert_equal 'Red'.red.colorized?, true
|
73
76
|
assert_equal 'Blue'.colorized?, false
|
74
77
|
assert_equal 'Green'.blue.green.uncolorize.colorized?, false
|
78
|
+
assert_equal ('none' + 'red'.red + 'none' + 'blue'.blue + 'none').colorized?, true
|
79
|
+
assert_equal ('none' + 'red'.red + 'none' + 'blue'.blue + 'none').uncolorize.colorized?, false
|
75
80
|
end
|
76
81
|
|
77
82
|
def test_concatenated_strings_on_green
|
@@ -94,13 +99,19 @@ class TestColorize < Test::Unit::TestCase
|
|
94
99
|
"\e[5;34;41mThis is blue\ntext on red\e[0m"
|
95
100
|
end
|
96
101
|
|
97
|
-
def
|
102
|
+
def test_disable_colorization_with_=
|
98
103
|
String.disable_colorization = true
|
99
104
|
assert_equal String.disable_colorization, true
|
100
105
|
String.disable_colorization = false
|
101
106
|
end
|
102
107
|
|
103
|
-
def
|
108
|
+
def test_disable_colorization_with_method
|
109
|
+
String.disable_colorization true
|
110
|
+
assert_equal String.disable_colorization, true
|
111
|
+
String.disable_colorization false
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_string_disable_colorization_with_=
|
104
115
|
String.disable_colorization = true
|
105
116
|
|
106
117
|
assert_equal String.disable_colorization, true
|
@@ -114,7 +125,7 @@ class TestColorize < Test::Unit::TestCase
|
|
114
125
|
"\e[0;34;49mThis is blue after enabling\e[0m"
|
115
126
|
end
|
116
127
|
|
117
|
-
def
|
128
|
+
def test_string_disable_colorization_with_method
|
118
129
|
assert_equal 'This is blue before disabling'.colorize(:blue),
|
119
130
|
"\e[0;34;49mThis is blue before disabling\e[0m"
|
120
131
|
|
@@ -129,7 +140,22 @@ class TestColorize < Test::Unit::TestCase
|
|
129
140
|
|
130
141
|
assert_equal 'This is blue after enabling'.colorize(:blue),
|
131
142
|
"\e[0;34;49mThis is blue after enabling\e[0m"
|
143
|
+
end
|
132
144
|
|
145
|
+
def test_already_colored_string_with_one_value
|
146
|
+
assert_equal "\e[31mThis is red\e[0m".red,
|
147
|
+
'This is red'.red
|
133
148
|
end
|
134
149
|
|
150
|
+
def test_color_matrix_method
|
151
|
+
assert_raises NoMethodError do
|
152
|
+
String.color_matrix
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_color_samples_method
|
157
|
+
assert_output do
|
158
|
+
String.color_samples
|
159
|
+
end
|
160
|
+
end
|
135
161
|
end
|
metadata
CHANGED
@@ -1,15 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: colorize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Michał Kalbarczyk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: codeclimate-test-reporter
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
13
55
|
description: Ruby String class extension. Adds methods to set text color, background
|
14
56
|
color and, text effects on ruby console and command line output, using ANSI escape
|
15
57
|
sequences.
|
@@ -47,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
89
|
version: '0'
|
48
90
|
requirements: []
|
49
91
|
rubyforge_project:
|
50
|
-
rubygems_version: 2.
|
92
|
+
rubygems_version: 2.4.5
|
51
93
|
signing_key:
|
52
94
|
specification_version: 4
|
53
95
|
summary: Add color methods to String class
|