tiny_color 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tiny_color.rb +47 -32
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb12cdf3f1fdc23d1f211194977b8743f38bb4acda953e5f86509d9dc67c4914
4
- data.tar.gz: da092dc5141b66e86ca38cac7ac41b18788e54346a97b92ba591d7aefe76b92c
3
+ metadata.gz: d3fab6755d6cbd85d80d5b68ed03896947aef7c7c546b7f4178fa78f6ba44aee
4
+ data.tar.gz: ccb2c63c201a14635de641808c9ab34001a743468ec655a8efc29598572c3243
5
5
  SHA512:
6
- metadata.gz: 82b177683f33c5292d420d1342a3351186679cecdcc5723cd2d194d545876e45ba2992daffa17f3e27b8ff47c150f920957fc1158fdd1e404ae517549f5a61d7
7
- data.tar.gz: 5235f5ab444d167bb2fccfaa44187278a33ac05da835dfae7a0c2544413e45994bd57c4f5c8763c2cd8ab22b10475cf4228de7ed84f50235475a58351c4f681b
6
+ metadata.gz: cb4dc9ea78870716b1c21c8fafcf8c00addf14073e09833b94b7b7d5987912d26d8cba6c58eb93b59a80e4373fe4cda67b242c0f1ca7e43dee65023e65e26015
7
+ data.tar.gz: 9c36772323fe25ce70410486c6a93da391ba74c34fea346695de366258d208f9284bc847d0376b7dcaaf7cc02d518f631f119c9c772999a45caf666259ed0f8c
data/lib/tiny_color.rb CHANGED
@@ -1,58 +1,73 @@
1
- # this code extends the String class, adding ANSI color codes for modifying the
2
- # text.
1
+ # this class extends the String class to add color formatting methods using
2
+ # ANSI escape codes.
3
3
  #
4
- # usage:
5
- # puts 'Hi'.green + ' there!'
4
+ # try these examples:
5
+ # require 'tiny_color'
6
6
  #
7
- # "Hi there!" # where 'Hi' will appear in green,
8
- # # and the rest in your # default
9
- # # terminal color
7
+ # "Hello World!".red # "Hello World!" in red
8
+ # "Hello World!".on_green # "Hello World!" with green background
9
+ # "Hello World!".bold # "Hello World!" in bold
10
+ # "Hello World!".underline # "Hello World!" with underline
11
+ # "Hello World!".red.underline # "Hello World!" with red color and underline
10
12
  #
11
- # you can also add background colors:
12
- # puts 'Hi'.black.on_yellow + ' there!'
13
- #
14
- # "Hi there!" # where 'Hi' will appear in black
15
- # # with a yellow background, and the
16
- # # rest in your default terminal
17
- # # color
13
+ # for support notes, see: https://en.wikipedia.org/wiki/ANSI_escape_code
18
14
  class String
19
15
  COLORS = {
20
16
  black: 30,
21
- light_black: 90,
22
-
23
- grey: 90,
24
- gray: 90,
25
-
17
+ gray: 90, # convenient alias for light_black
18
+ grey: 90, # convenient alias for light_black
26
19
  red: 31,
27
- light_red: 91,
28
-
29
20
  green: 32,
30
- light_green: 92,
31
-
32
21
  yellow: 33,
33
- light_yellow: 93,
34
-
35
22
  blue: 34,
36
- light_blue: 94,
37
-
38
23
  purple: 35,
39
- light_purple: 95,
40
-
41
24
  cyan: 36,
42
- light_cyan: 96,
43
-
44
25
  white: 37,
26
+ light_black: 90,
27
+ light_red: 91,
28
+ light_green: 92,
29
+ light_yellow: 93,
30
+ light_blue: 94,
31
+ light_purple: 95,
32
+ light_cyan: 96,
45
33
  light_white: 97
46
34
  }
47
35
 
36
+ # see: https://en.wikipedia.org/wiki/ANSI_escape_code
37
+ # not all of these modes may be supported by your terminal
38
+ #
39
+ # some terminal emulators require that you enable certain features, such as
40
+ # blinking text
41
+ MODES = {
42
+ normal: 0,
43
+ bold: 1,
44
+ dim: 2,
45
+ italic: 3,
46
+ underline: 4,
47
+ blink: 5,
48
+ blink_slow: 5,
49
+ blink_fast: 6,
50
+ invert: 7,
51
+ hide: 8,
52
+ strike: 9,
53
+ double_underline: 20,
54
+ reveal: 28,
55
+ overlined: 53
56
+ }
57
+
48
58
  COLORS.each do |color, value|
49
59
  define_method color do
50
60
  "\033[#{value}m#{self}\033[0m"
51
61
  end
52
-
53
62
  define_method "on_#{color}" do
54
63
  "\033[#{value + 10}m#{self}\033[0m"
55
64
  end
56
65
  end
66
+
67
+ MODES.each do |mode, value|
68
+ define_method mode do
69
+ "\033[#{value}m#{self}\033[0m"
70
+ end
71
+ end
57
72
  end
58
73
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_color
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Lunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-24 00:00:00.000000000 Z
11
+ date: 2023-01-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: a tiny library for String colorization
14
14
  email: jefflunt@gmail.com
@@ -39,6 +39,6 @@ requirements: []
39
39
  rubygems_version: 3.4.1
40
40
  signing_key:
41
41
  specification_version: 4
42
- summary: this is a minimalist library for colorinzing Strings, via extending the String
43
- class
42
+ summary: this is a minimalist library for adding color to Strings by extending the
43
+ String class
44
44
  test_files: []