l43_color 0.1.0 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18a2fda2e427986f245d7010c46ff932376a35ca198e5dae6bd7acacabc25d98
4
- data.tar.gz: 43432648858186ec32e661495a7b31e2bd790a6f15e59e81c20b6cedea894057
3
+ metadata.gz: ebccf614bfe1b82244f4f6ace438402fac68bef6df5a4509c266bc45f415b249
4
+ data.tar.gz: ff2b98d1a9b42ac04e67154ace1eed41f13f0961ac6edb617aa3c508884e8542
5
5
  SHA512:
6
- metadata.gz: 5c5007be7b175721c80f6520962232667f226bd389fc970c4500681aeec8d93df81b22fd57aecbc70e9d41110f22d374af64098e581be950f8ecea117675546d
7
- data.tar.gz: 78016a17b6a3820113da61af66e62ae48efab38a752e7e4839dbde0d6e547faa77fa3cfaa529a281f8c0078c3552ef243081767daca05c982d95a04f041c8d07
6
+ metadata.gz: 48d7442f30326509e880a3d3076c96f4b84fb9aaede13829726f088c5617ba87a50420aec5ce851a6c177d145ed8ba4e5182f2a958ddc2664b00f2d87f1c0b43
7
+ data.tar.gz: 4211e6a868a560171c41d53e1b233500500370ff8432deb157db1418566e736865bd666a53a3e044b52af537bafaf17ebfe9fe341b14ade5d72953416de7c5ef
data/README.md CHANGED
@@ -35,7 +35,7 @@ And if we try a nonexisting color we get an error
35
35
  expect { L43::Color.ansi_code("no_color") }.to raise_error(IndexError, "key not found: :no_color")
36
36
  ```
37
37
 
38
- ### Context: Injecting methods into strings
38
+ ### Context: Injecting color methods into strings
39
39
 
40
40
  Given the inclusion of the string inject module
41
41
  ```ruby
@@ -47,6 +47,63 @@ Then we can make colored strings as follows
47
47
  expect("red".red).to eq("\e[31mred")
48
48
  ```
49
49
 
50
+ ### Context: Conveniently named methods
51
+
52
+ Given the following
53
+ ```ruby
54
+ require 'l43/color/methods'
55
+ ```
56
+
57
+ Then we can get the ANSI codes as functions
58
+ ```ruby
59
+ expect(L43::Color::Methods.cyan).to eq("\x1b[36m")
60
+ ```
61
+
62
+ And to get rid of the long name this module can be included
63
+ ```ruby
64
+ c = Class.new do
65
+ include L43::Color::Methods
66
+ end
67
+ expect(c.new.blue).to eq("\e[34m")
68
+ ```
69
+ Or extended
70
+ ```ruby
71
+ m = Module.new do
72
+ extend L43::Color::Methods
73
+ end
74
+ expect(m.magenta).to eq("\e[35m")
75
+ ```
76
+
77
+ ### Context: Output Helpers
78
+
79
+ They allow to alternate strings (to be printed verbatim) and symbols that will
80
+ output ANSI codes
81
+
82
+ Given they are included
83
+ ```ruby
84
+ require 'l43/color/output'
85
+ include L43::Color::Output
86
+ ```
87
+
88
+ Then we can use them to output to stdout
89
+ ```ruby
90
+ expected = "\e[31mhello\e[0mworld\n"
91
+ expect { putcol([:red, "hello", :reset, "world"]) }
92
+ .to output(expected).to_stdout_from_any_process
93
+
94
+ expect { putcol([:red, "hello", :reset, "world"], to: :stdout) }
95
+ .to output(expected).to_stdout_from_any_process
96
+ ```
97
+
98
+ Or we can use them to output to stderr
99
+ ```ruby
100
+ expected = "\e[41mhello\e[4mworld\n"
101
+ expect { putcol([:bg_red, "hello", :ul, "world"], to: :stderr) }
102
+ .to output(expected).to_stderr_from_any_process
103
+
104
+ expect { putcol([:bg_red, "hello", :ul, "world"], to: $stderr) }
105
+ .to output(expected).to_stderr_from_any_process
106
+ ```
50
107
  ## Author
51
108
 
52
109
  Copyright © 2024 Robert Dober
data/bin/colorize ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../lib/l43/color/cli'
3
+
4
+ L43::Color::Cli.run(ARGV)
5
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+
4
+ require_relative 'methods'
5
+ module L43
6
+ module Color
7
+ module Cli extend self
8
+ extend Methods
9
+
10
+ def run(_args)
11
+ $stderr.puts [yellow, "Coming soon"].join
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'definitions'
4
+ module L43
5
+ module Color
6
+ module Methods extend self
7
+ Definitions::COLOR_DEFINITIONS.each do |name, code|
8
+ define_method(name) { code }
9
+ end
10
+ end
11
+ end
12
+ end
13
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../color'
4
+ module L43
5
+ module Color
6
+ module Output
7
+
8
+ def putcol(args, to: $stdout)
9
+ dest = _get_device(to)
10
+ dest.puts args.map(&_to_code).join
11
+ end
12
+
13
+ private
14
+
15
+ def _get_device(desc)
16
+ case desc
17
+ when IO
18
+ desc
19
+ when :stderr
20
+ $stderr
21
+ when :stdout
22
+ $stdout
23
+ end
24
+ end
25
+
26
+ def _to_code
27
+ -> ele do
28
+ case ele
29
+ when Symbol
30
+ Color.ansi_code(ele)
31
+ else
32
+ ele
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/l43/color.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require_relative 'color/definitions'
4
4
  module L43
5
5
  module Color extend self
6
- VERSION = "0.1.0"
6
+ VERSION = "0.1.1"
7
7
 
8
8
  def ansi_code(name)
9
9
  Definitions::COLOR_DEFINITIONS.fetch(name.downcase.to_sym)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_color
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
@@ -25,8 +25,9 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.7
27
27
  description: |
28
- **PLACEHOLDER**
29
- Colorize text with ANSI colors
28
+ Colorize text with ANSI colors.
29
+ Parse and render files with
30
+ a mini color markup language.
30
31
  email: robert.dober@gmail.com
31
32
  executables: []
32
33
  extensions: []
@@ -34,12 +35,16 @@ extra_rdoc_files: []
34
35
  files:
35
36
  - LICENSE
36
37
  - README.md
38
+ - bin/colorize
37
39
  - lib/l43/color.rb
40
+ - lib/l43/color/cli.rb
38
41
  - lib/l43/color/definitions.rb
42
+ - lib/l43/color/methods.rb
43
+ - lib/l43/color/output.rb
39
44
  - lib/l43/color/string_methods.rb
40
- homepage: https://gitlab.com/l43-gems/l43_color
45
+ homepage: https://www.codeberg.org/lab419/l43_color.git
41
46
  licenses:
42
- - Apache-2.0
47
+ - AGPL-3.0-or-later
43
48
  metadata: {}
44
49
  post_install_message:
45
50
  rdoc_options: []
@@ -59,5 +64,5 @@ requirements: []
59
64
  rubygems_version: 3.5.8
60
65
  signing_key:
61
66
  specification_version: 4
62
- summary: Colorize Text (PLACEHOLDER)
67
+ summary: Colorize Text
63
68
  test_files: []