ansispan 0.0.1 → 0.0.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ansispan.rb +28 -12
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3c21bbbd8097d65d21d14536d611a9cc31102e4f033fe02911c25216ba2e8f5
4
- data.tar.gz: 5c43f0723d83d84f4b919d09df0532c90b7ffd4d5589d24d4c3770ad9aabafe8
3
+ metadata.gz: e055aa4ef747ae4516d9012a53b7cbf858a756f03b569dec8c8464a3d6c07468
4
+ data.tar.gz: ccb135e6640081d8d66297efb4aefc2465f13054d2e07d9fcf88d21c6786d6b1
5
5
  SHA512:
6
- metadata.gz: 8ffb149cdd987d883f0378d6de58c2f71f3d5b3a111aa733c9ac117a4204f6869f0906bbd79b4d78d773c1f32fda2f4897fbf3794bbb4ffdf5a7101133482298
7
- data.tar.gz: dfb8d4c124ed1054260f8965d13c7ae991398d389e3f97819932c2fdec23eaab837e107745c83b2c24eaf98bd8c58eb46bc54b5be7392c715306bcfe13766564
6
+ metadata.gz: 866a67e0e0a990436f9acad587702d5642918e5413e837a7e1d3a58a2e35161c17c51107ca1a91b258139a01dd3f620e74a1fa08838d050aefc01c76e8162296
7
+ data.tar.gz: ad993a614bc5594ec3dc1c56a15e9746e88d4d02b2217991ed2ef2eb47a518fabbad129e5c71e6a1abce776e89ec6506d9eb73642251ee7c2f928fc5b3798dc6
data/lib/ansispan.rb CHANGED
@@ -10,43 +10,59 @@ class Ansispan
10
10
  '37': 'white'
11
11
  }
12
12
 
13
- def self.convert(str)
13
+ @styles = {
14
+ '1': 'font-weight: bold;',
15
+ '3': 'font-style: italic;',
16
+ '4': 'text-decoration: underline;',
17
+ '9': 'text-decoration: line-through;',
18
+ }
19
+
20
+ def self.convert(str, escape_character: '\033')
21
+ escape_character = Regexp.escape(escape_character)
22
+
14
23
  @foreground_colors.keys.each do |ansi|
15
24
  span = '<span style="color: ' + @foreground_colors[ansi] + '">'
16
25
  #
17
26
  # `\033[Xm` == `\033[0;Xm` sets foreground color to `X`.
18
27
  #
19
28
 
20
- str = str.gsub(/\033\[#{ansi}m/, span)
21
- .gsub(/\033\[#{ansi}m/, span)
29
+ str = str.gsub(/#{escape_character}\[#{ansi}m/, span)
30
+ .gsub(/#{escape_character}\[#{ansi}m/, span)
22
31
  end
23
32
 
24
33
  #
25
34
  # `\033[1m` enables bold font, `\033[22m` disables it
26
35
  #
27
- str = str.gsub(/\033\[1m/, '<b>')
28
- .gsub(/\033\[22m/, '</b>')
36
+ str = str.gsub(/#{escape_character}\[1m/, '<b>')
37
+ .gsub(/#{escape_character}\[22m/, '</b>')
29
38
 
30
39
 
31
40
  # Bold colors
32
41
  @foreground_colors.keys.each do |ansi|
33
42
  span = '<span style="font-weight: bold; color: ' + @foreground_colors[ansi] + '">'
34
- str = str.gsub(/\033\[1;#{ansi}m/, span)
43
+ str = str.gsub(/#{escape_character}\[1;#{ansi}m/, span)
44
+ end
45
+
46
+ # Text styles
47
+ @styles.keys.each do |ansi|
48
+ puts "\[1;#{ansi}m/"
49
+ span = '<span style="font-weight: bold;' + @styles[ansi] + '">'
50
+ str = str.gsub(/#{escape_character}\[1;#{ansi}m/, span)
35
51
  end
36
52
 
37
53
  # Underline colors
38
54
  @foreground_colors.keys.each do |ansi|
39
55
  span = '<span style="text-decoration: underline; color: ' + @foreground_colors[ansi] + '">'
40
- str = str.gsub(/\033\[4;#{ansi}m/, span)
56
+ str = str.gsub(/#{escape_character}\[4;#{ansi}m/, span)
41
57
  end
42
58
  #
43
59
  # `\033[3m` enables italics font, `\033[23m` disables it
44
60
  #
45
- str = str.gsub(/\033\[3m/, '<i>')
46
- .gsub(/\033\[23m/, '</i>')
61
+ str = str.gsub(/#{escape_character}\[3m/, '<i>')
62
+ .gsub(/#{escape_character}\[23m/, '</i>')
47
63
 
48
- str = str.gsub(/\033\[m/, '</span>');
49
- str = str.gsub(/\033\[0m/, '</span>');
50
- return str.gsub(/\033\[39m/, '</span>');
64
+ str = str.gsub(/#{escape_character}\[m/, '</span>');
65
+ str = str.gsub(/#{escape_character}\[0m/, '</span>');
66
+ return str.gsub(/#{escape_character}\[39m/, '</span>');
51
67
  end
52
68
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansispan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jelani Woods
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-07-01 00:00:00.000000000 Z
@@ -21,7 +21,7 @@ homepage: http://github.com/jelaniwoods/ansispan
21
21
  licenses:
22
22
  - MIT
23
23
  metadata: {}
24
- post_install_message:
24
+ post_install_message:
25
25
  rdoc_options: []
26
26
  require_paths:
27
27
  - lib
@@ -36,8 +36,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  requirements: []
39
- rubygems_version: 3.0.8
40
- signing_key:
39
+ rubygems_version: 3.5.16
40
+ signing_key:
41
41
  specification_version: 4
42
42
  summary: Convert Terminal ansi colors to <span> tags with inline color styles.
43
43
  test_files: []