l43_color 0.1.2 → 0.2.0
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/README.md +6 -1
- data/lib/l43/color/colorschemes.rb +45 -0
- data/lib/l43/color/output.rb +5 -0
- data/lib/l43/color.rb +6 -2
- metadata +17 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 50de1fa647eec1ef69ad5a21d43be810479d582cb5255fd8aba64ab381b48b92
|
|
4
|
+
data.tar.gz: 7f8247bf354159f32d64a51d02b78bf7c30b63303d22119f90479d1f2dc69dad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d76f0b3f4ac1641c53558f17a14c9e54949823fba5a4560a80d3a6c47e74333df334c5d7013e8c72debb2cc2c68006d873fce6060f8df9d16381be86334ef4cd
|
|
7
|
+
data.tar.gz: 8a9374bef5e7b250a2b76ecda000760799cf7c02b39d3eae6cc3e5551a6065cd86d53e008e156e88af358c359c5cf6bec0637a442129651c279fe39ade9f3170
|
data/README.md
CHANGED
|
@@ -15,6 +15,10 @@ for input.
|
|
|
15
15
|
|
|
16
16
|
The behavior and use of this gem is documented here by means of [speculations](https://rubygems.org/gems/speculate_about)
|
|
17
17
|
|
|
18
|
+
## New in v0.2: Colorschemes
|
|
19
|
+
|
|
20
|
+
Documented in [`L43::Color::Colorschemes](speculations/colorschemes.md)
|
|
21
|
+
|
|
18
22
|
### Context: Backbone Functionality, issuing ANSI codes
|
|
19
23
|
|
|
20
24
|
Given the L43::Color module
|
|
@@ -32,7 +36,8 @@ Then we can ask for ANSI codes
|
|
|
32
36
|
|
|
33
37
|
And if we try a nonexisting color we get an error
|
|
34
38
|
```ruby
|
|
35
|
-
expect { L43::Color.ansi_code("no_color") }
|
|
39
|
+
expect { L43::Color.ansi_code("no_color") }
|
|
40
|
+
.to raise_error(L43::Color::UndefinedColorCode, "no_color is not a color code")
|
|
36
41
|
```
|
|
37
42
|
|
|
38
43
|
### Context: Injecting color methods into strings
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'l43/open_object'
|
|
4
|
+
module L43
|
|
5
|
+
module Color
|
|
6
|
+
module Colorschemes extend self
|
|
7
|
+
Colorscheme = L43::OpenObject.def_class(
|
|
8
|
+
args: [:blue, :bold],
|
|
9
|
+
emph: :bold,
|
|
10
|
+
env_var: [:green, :bold],
|
|
11
|
+
error: [:red, :bold],
|
|
12
|
+
option: [:cyan, :bold],
|
|
13
|
+
remark: :dim,
|
|
14
|
+
warn: [:yellow, :bold]
|
|
15
|
+
)
|
|
16
|
+
DefaultColorscheme = Colorscheme.new
|
|
17
|
+
|
|
18
|
+
def replace_kewords(*chunks, colorscheme: DefaultColorscheme)
|
|
19
|
+
chunks.flatten.map { _replace_kwd it, colorscheme: }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
def _replace_kwd(chunk, colorscheme:)
|
|
24
|
+
case chunk
|
|
25
|
+
when Symbol
|
|
26
|
+
colorscheme.fetch(chunk, chunk)
|
|
27
|
+
else
|
|
28
|
+
chunk
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class << self
|
|
34
|
+
def colorscheme
|
|
35
|
+
@colorscheme || Colorschemes::DefaultColorscheme
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def set_colorscheme(colorscheme_name)
|
|
39
|
+
@colorscheme = Colorschemes.get_colorscheme(colorscheme_name)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
data/lib/l43/color/output.rb
CHANGED
|
@@ -5,6 +5,11 @@ module L43
|
|
|
5
5
|
module Color
|
|
6
6
|
module Output
|
|
7
7
|
|
|
8
|
+
def cs_colorize(*chunks, reset: true, indent: 2)
|
|
9
|
+
chunks = Color::Colorschemes.replace_kewords(chunks, colorscheme: Color.colorscheme)
|
|
10
|
+
colorize(*chunks, reset:, indent:)
|
|
11
|
+
end
|
|
12
|
+
|
|
8
13
|
def colorize(*chunks, reset: true, indent: 2)
|
|
9
14
|
reset = reset ? :reset : ''
|
|
10
15
|
[*chunks.flatten.map { _format_chunk it, indent: }, reset].flatten.map(&_to_code).join
|
data/lib/l43/color.rb
CHANGED
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
require_relative 'color/definitions'
|
|
4
4
|
module L43
|
|
5
5
|
module Color extend self
|
|
6
|
-
VERSION = "0.
|
|
6
|
+
VERSION = "0.2.0"
|
|
7
|
+
|
|
8
|
+
UndefinedColorCode = Class.new(RuntimeError)
|
|
7
9
|
|
|
8
10
|
def ansi_code(name)
|
|
9
|
-
Definitions::COLOR_DEFINITIONS.fetch(name.downcase.to_sym)
|
|
11
|
+
Definitions::COLOR_DEFINITIONS.fetch(name.downcase.to_sym) do |bad_code|
|
|
12
|
+
raise UndefinedColorCode, "#{bad_code} is not a color code"
|
|
13
|
+
end
|
|
10
14
|
end
|
|
11
15
|
|
|
12
16
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: l43_color
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robert Dober
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
-
dependencies:
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: l43_open_object
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 0.2.6
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 0.2.6
|
|
12
26
|
description: |
|
|
13
27
|
Colorize text with ANSI colors.
|
|
14
28
|
Parse and render files with
|
|
@@ -23,6 +37,7 @@ files:
|
|
|
23
37
|
- bin/colorize
|
|
24
38
|
- lib/l43/color.rb
|
|
25
39
|
- lib/l43/color/cli.rb
|
|
40
|
+
- lib/l43/color/colorschemes.rb
|
|
26
41
|
- lib/l43/color/definitions.rb
|
|
27
42
|
- lib/l43/color/methods.rb
|
|
28
43
|
- lib/l43/color/output.rb
|