colsole 0.8.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e651768cb78375a765cc5913f545c5e133fb95ad7515bfdc95fffb14de74038e
4
- data.tar.gz: 3406291b87c5ca7797f1f65729a37d7e371034ba39be79f831d811eb39003508
3
+ metadata.gz: 832d466f34ab604a7a9cc7b4e92b94aea79fc4fd52e6383c767bf17483be5d7b
4
+ data.tar.gz: ceb677bb2f0b6125e2f80717709bbb65d4c9b43bc9bf00d994f4c337a0317536
5
5
  SHA512:
6
- metadata.gz: 60fa6abaa7b8565c39d53d8a706af951b19968c283250aeee53768f382c1b8aead7e0fb0a1f2c6d9a3190f941606dd99e9214de176bbcfe786d0d9f85c5b1ff0
7
- data.tar.gz: 64cc7706ef686d49b77b5eb9b2e303db7550c9466d409149075588b3aeee932415967f6040a156ef81d463129a186b51aaa7da010408e712ddd79291f11eb463
6
+ metadata.gz: 5aa0974a9282c9c3140ae0e16e2b8dfaec4b846cea832a2c46f5d35cd5200ce76d93ebb3bad5f24e785489af1143b3da20acb4f9e8f09e2442b01c90a52fbe54
7
+ data.tar.gz: 957dc4bf62fd4fcecc0d11e7a2bee220b03e75d0283bdc6d123026fc117b305c2d36b66a9a83b81fbe5f44547aade7cd0ac6dd5cb45ea4bd221cb02c10a0c446
data/README.md CHANGED
@@ -9,10 +9,10 @@
9
9
  Utility functions for colorful console applications.
10
10
 
11
11
  > **Upgrade Note**
12
- >
13
- > This README is for the latest version of colsole (0.8.x), which is compatible
14
- > with older versions. Version 1.x will NOT be compatible.
15
- >
12
+ >
13
+ > - Version 1.0.x is not compatible with older versions
14
+ > - Version 0.8.x is compatible with both the old syntax and new syntax
15
+ >
16
16
  > See [Uprading](#upgrading) below.
17
17
 
18
18
  ## Install
@@ -23,6 +23,21 @@ Add to your Gemfile:
23
23
  $ gem 'colsole', '>= 0.8.1', '< 2.0'
24
24
  ```
25
25
 
26
+ ## Usage
27
+
28
+ ```ruby
29
+ require 'colsole'
30
+ include Colsole
31
+ say 'b`Blue` Man Group'
32
+ ```
33
+
34
+ All the methods described below can also be called directly on the `Colsole` module. This is useful when you want to use it at the top level of your project, without namespace contamination:
35
+
36
+ ```ruby
37
+ require 'colsole'
38
+ Colsole.say 'b`Blue` Man Group'
39
+ ```
40
+
26
41
  ## Examples
27
42
 
28
43
  See the [Examples file](https://github.com/DannyBen/colsole/blob/master/example.rb).
@@ -60,7 +75,6 @@ say "downloading data... "
60
75
  say "download complete.", replace: true
61
76
  ```
62
77
 
63
-
64
78
  ### `word_wrap " string" [, length]`
65
79
 
66
80
  Wrap long lines while keeping words intact, and keeping indentation based on the
@@ -111,7 +125,6 @@ fallback if it is unable to detect.
111
125
  Returns only the terminal width or height. This is a shortcut to
112
126
  `terminal_size[0]` / terminal_size[1].
113
127
 
114
-
115
128
  ## Colors
116
129
 
117
130
  Strings that are surrounded by backticks, and preceded by a color code and
@@ -123,24 +136,24 @@ say "this is b`blue` and ru`this is red underlined`"
123
136
 
124
137
  The one letter color code is required, followed by up to 3 style code.
125
138
 
126
- | Color Code | Color
127
- |------------|-------
128
- | `n` | no color
129
- | `k` | black
130
- | `r` | red
131
- | `g` | green
132
- | `y` | yellow
133
- | `b` | blue
134
- | `m` | magenta
135
- | `c` | cyan
136
- | `w` | white
137
-
138
- | Style Code | Style
139
- |------------|-------
140
- | `b` | bold
141
- | `u` | underlined
142
- | `i` | inverted
143
- | `z` | terminate
139
+ | Color Code | Color |
140
+ | ---------- | -------- |
141
+ | `n` | no color |
142
+ | `k` | black |
143
+ | `r` | red |
144
+ | `g` | green |
145
+ | `y` | yellow |
146
+ | `b` | blue |
147
+ | `m` | magenta |
148
+ | `c` | cyan |
149
+ | `w` | white |
150
+
151
+ | Style Code | Style |
152
+ | ---------- | ---------- |
153
+ | `b` | bold |
154
+ | `u` | underlined |
155
+ | `i` | inverted |
156
+ | `z` | terminate |
144
157
 
145
158
  ## Upgrading
146
159
 
@@ -150,7 +163,6 @@ markers. For easy transition, it is compatible with older versions.
150
163
  Follow these steps to upgrade:
151
164
 
152
165
  ```ruby
153
-
154
166
  # => Require a more flexible version
155
167
  # change this
156
168
  gem 'colsole'
@@ -1,3 +1,3 @@
1
1
  module Colsole
2
- VERSION = '0.8.1'
2
+ VERSION = '1.0.0'
3
3
  end
data/lib/colsole.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'io/console'
2
- require 'colsole/compat'
3
2
 
4
3
  # Utility functions for colorful console applications.
5
4
  module Colsole
@@ -22,6 +21,8 @@ module Colsole
22
21
  'z' => "\e[0m", # terminate
23
22
  }
24
23
 
24
+ module_function
25
+
25
26
  # Output a string with optional color markers to stdout.
26
27
  # If text is ended with a white space, you can call again with replace: true
27
28
  # to replace that line
@@ -103,24 +104,16 @@ module Colsole
103
104
 
104
105
  # Convert color markers to ansi colors.
105
106
  def colorize(string)
106
- # compatibility later
107
- compat_string = old_colorize string
108
-
109
- process_color_markers compat_string do |color, styles, text|
107
+ process_color_markers string do |color, styles, text|
110
108
  "#{styles}#{color}#{text}#{ANSI_STYLES['z']}"
111
109
  end
112
110
  end
113
111
 
114
112
  # Remove color markers.
115
113
  def strip_colors(string)
116
- # compatibility layer
117
- compat_string = old_strip_colors string
118
-
119
- process_color_markers(compat_string) { |_color, _styles, text| text }
114
+ process_color_markers(string) { |_color, _styles, text| text }
120
115
  end
121
116
 
122
- private
123
-
124
117
  def process_color_markers(string)
125
118
  string.gsub(/([rgybmcn])([ubi]{0,3})`([^`]*)`/) do
126
119
  color = ANSI_COLORS[$1]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colsole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-20 00:00:00.000000000 Z
11
+ date: 2023-01-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Utility functions for making colorful console applications
14
14
  email: db@dannyben.com
@@ -18,7 +18,6 @@ extra_rdoc_files: []
18
18
  files:
19
19
  - README.md
20
20
  - lib/colsole.rb
21
- - lib/colsole/compat.rb
22
21
  - lib/colsole/version.rb
23
22
  homepage: https://github.com/DannyBen/colsole
24
23
  licenses:
@@ -33,14 +32,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
33
32
  requirements:
34
33
  - - ">="
35
34
  - !ruby/object:Gem::Version
36
- version: 2.6.0
35
+ version: '2.7'
37
36
  required_rubygems_version: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - ">="
40
39
  - !ruby/object:Gem::Version
41
40
  version: '0'
42
41
  requirements: []
43
- rubygems_version: 3.4.3
42
+ rubygems_version: 3.4.5
44
43
  signing_key:
45
44
  specification_version: 4
46
45
  summary: Colorful Console Applications
@@ -1,59 +0,0 @@
1
- # This file contains methods that are called by the main Colsole module
2
- # for compatibility with older versions of colsole.
3
- # Do not use these methods directly.
4
- module Colsole
5
- def detect_terminal_size(*args)
6
- terminal_size(*args)
7
- end
8
-
9
- def old_colorize(text)
10
- reset = colors['txtrst']
11
- reset_called_last = true
12
-
13
- out = text.gsub(/!([a-z]{6})!/) do
14
- reset_called_last = $1 == 'txtrst'
15
- colors[$1]
16
- end
17
-
18
- reset_called_last or out = "#{out}#{reset}"
19
- out
20
- end
21
-
22
- def old_strip_colors(text)
23
- text.gsub(/!([a-z]{6})!/, '')
24
- end
25
-
26
- def resay(text)
27
- say text, replace: true
28
- end
29
-
30
- def say_status(status, message = nil, color = nil)
31
- color ||= (message ? :txtgrn : :txtblu)
32
- say "!#{color}!#{status.to_s.rjust 12} !txtrst! #{message}".strip
33
- end
34
-
35
- def colors
36
- @colors ||= begin
37
- esc = 27.chr
38
- pattern = "#{esc}[%{decor};%{fg}m"
39
-
40
- decors = { txt: 0, bld: 1, und: 4, rev: 7 }
41
- color_codes = { blk: 0, red: 1, grn: 2, ylw: 3, blu: 4, pur: 5, cyn: 6, wht: 7 }
42
- colors = {}
43
-
44
- decors.each do |dk, dv|
45
- color_codes.each do |ck, cv|
46
- key = "#{dk}#{ck}"
47
- val = pattern % { decor: dv, fg: "3#{cv}" }
48
- colors[key] = val
49
- end
50
- end
51
-
52
- colors['txtbld'] = "#{esc}[1m"
53
- colors['txtund'] = "#{esc}[4m"
54
- colors['txtrev'] = "#{esc}[7m"
55
- colors['txtrst'] = "#{esc}[0m"
56
- colors
57
- end
58
- end
59
- end