rbtext 0.2.1 → 0.3.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 +4 -4
- data/bin/ftext +8 -4
- data/lib/rbtext/colors.rb +6 -23
- data/lib/rbtext/cursor.rb +13 -24
- data/lib/rbtext/formatting.rb +9 -29
- data/lib/rbtext/ftext.rb +8 -0
- data/lib/rbtext/screen.rb +9 -22
- data/lib/rbtext/string_methods.rb +36 -0
- data/lib/rbtext.rb +2 -4
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5489b31d5f02438507b2bbae6be1d17e716150dda242fc6acb853a2eb3fe339b
|
4
|
+
data.tar.gz: 507406a97defe69dddd52e93a4eaf6d19af6f8b42e980c7f27b2772700f064f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 147fc6619b47a74f9b67c9ef5bf94cbd90dc5de51d15ddb455eb62de6c80263b93a668400d8884dfe42cc14008ea690737d8532f780a7a6b8aaad390a5d0137d
|
7
|
+
data.tar.gz: 21d5e1b5218407351c1b773a49d5f236c0816b557407f1222a1e14682fddb6538f898351480551d5651d5c9340ffc067b10ed2669c7d77a0c821346999155444
|
data/bin/ftext
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
#!/usr/bin/ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
2
|
require_relative '../lib/rbtext.rb'
|
3
3
|
|
4
|
+
params = (ARGV[1..ARGV.length-1]).to_a
|
5
|
+
|
4
6
|
if $stdin.tty? && ARGV[0]
|
5
7
|
txt = ARGV[0].to_s
|
6
8
|
elsif $stdin.tty?
|
@@ -18,13 +20,15 @@ else
|
|
18
20
|
end
|
19
21
|
|
20
22
|
(0..lines.length-1).each do |l|
|
21
|
-
txt << "#{"_.f:reset._" if
|
23
|
+
txt << "#{"_.f:reset._" if !params.include?("--noreset")}_.#{args[l]}._"+lines[l].gsub("_", "\0004")
|
22
24
|
end
|
23
25
|
|
24
26
|
txt = txt.join
|
25
27
|
else
|
26
|
-
txt = ARGF.readlines.join
|
28
|
+
txt = ARGF.readlines.join.gsub("_", "\0004")
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
|
-
|
32
|
+
out = R::Ft.new(txt).to_s.gsub("\0004", "_")
|
33
|
+
print out.dump.sub("\"", "").reverse.sub("\"", "").reverse if params.include?("--dump")
|
34
|
+
print out if !params.include?("--dump")
|
data/lib/rbtext/colors.rb
CHANGED
@@ -1,13 +1,6 @@
|
|
1
1
|
module RBText
|
2
2
|
module Colors
|
3
|
-
|
4
|
-
:fg_color_codes,
|
5
|
-
:bg_color_codes,
|
6
|
-
:color,
|
7
|
-
:num_color
|
8
|
-
]
|
9
|
-
|
10
|
-
def fg_color_codes
|
3
|
+
def self.fg_color_codes
|
11
4
|
{
|
12
5
|
black: "30",
|
13
6
|
red: "31",
|
@@ -29,7 +22,7 @@ module RBText
|
|
29
22
|
}
|
30
23
|
end
|
31
24
|
|
32
|
-
def bg_color_codes
|
25
|
+
def self.bg_color_codes
|
33
26
|
bg_color_codes = {}
|
34
27
|
|
35
28
|
for c in self.fg_color_codes.keys do
|
@@ -39,7 +32,7 @@ module RBText
|
|
39
32
|
return bg_color_codes
|
40
33
|
end
|
41
34
|
|
42
|
-
def color(color, type: :fg, mode: :str)
|
35
|
+
def self.color(color, type: :fg, mode: :str)
|
43
36
|
return "\033[39m\033[49m" if type == :all && color == :reset
|
44
37
|
|
45
38
|
if type == :fg
|
@@ -54,21 +47,11 @@ module RBText
|
|
54
47
|
print "\033[#{color_code}m" if mode == :set
|
55
48
|
end
|
56
49
|
|
57
|
-
def num_color(num, type: :fg, mode: :str)
|
50
|
+
def self.num_color(num, type: :fg, mode: :str)
|
58
51
|
return "\033[#{type == :fg ? "38" : "48"};5;#{num}m" if mode == :str
|
59
52
|
print "\033[#{type == :fg ? "38" : "48"};5;#{num}m" if mode == :set
|
60
53
|
end
|
61
|
-
|
62
|
-
@@methods.each do |method|
|
63
|
-
module_function method
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
module C
|
68
|
-
include RBText::Colors
|
69
|
-
|
70
|
-
@@methods.each do |method|
|
71
|
-
module_function method
|
72
|
-
end
|
73
54
|
end
|
74
55
|
end
|
56
|
+
|
57
|
+
RBText::C = RBText::Colors
|
data/lib/rbtext/cursor.rb
CHANGED
@@ -1,32 +1,22 @@
|
|
1
1
|
module RBText
|
2
2
|
module Cursor
|
3
|
-
|
4
|
-
:up,
|
5
|
-
:down,
|
6
|
-
:left,
|
7
|
-
:right,
|
8
|
-
:beginning_of_line,
|
9
|
-
:go_to_pos,
|
10
|
-
:pos
|
11
|
-
]
|
12
|
-
|
13
|
-
def up(num=1)
|
3
|
+
def self.up(num=1)
|
14
4
|
print "\033[#{num.to_i}A"
|
15
5
|
end
|
16
6
|
|
17
|
-
def down(num=1)
|
7
|
+
def self.down(num=1)
|
18
8
|
print "\033[#{num.to_i}B"
|
19
9
|
end
|
20
10
|
|
21
|
-
def left(num=1)
|
11
|
+
def self.left(num=1)
|
22
12
|
print "\033[#{num.to_i}D"
|
23
13
|
end
|
24
14
|
|
25
|
-
def right(num=1)
|
15
|
+
def self.right(num=1)
|
26
16
|
print "\033[#{num.to_i}C"
|
27
17
|
end
|
28
18
|
|
29
|
-
def go_to_pos(x, y=nil)
|
19
|
+
def self.go_to_pos(x, y=nil)
|
30
20
|
if x.class == Array && !y
|
31
21
|
y = x[1]
|
32
22
|
x = x[0]
|
@@ -36,7 +26,7 @@ module RBText
|
|
36
26
|
print "\033[#{y};#{x}f"
|
37
27
|
end
|
38
28
|
|
39
|
-
def pos
|
29
|
+
def self.pos
|
40
30
|
res = ''
|
41
31
|
$stdin.raw do |stdin|
|
42
32
|
$stdout << "\e[6n"
|
@@ -49,19 +39,18 @@ module RBText
|
|
49
39
|
return [Integer(m[:column]), Integer(m[:row])]
|
50
40
|
end
|
51
41
|
|
52
|
-
def beginning_of_line
|
42
|
+
def self.beginning_of_line
|
53
43
|
print "\r"
|
54
44
|
end
|
55
45
|
|
56
|
-
|
57
|
-
|
46
|
+
def self.show
|
47
|
+
print "\033[?25h"
|
58
48
|
end
|
59
|
-
end
|
60
49
|
|
61
|
-
|
62
|
-
|
63
|
-
@@methods.each do |method|
|
64
|
-
module_function method
|
50
|
+
def self.hide
|
51
|
+
print "\033[?25l"
|
65
52
|
end
|
66
53
|
end
|
67
54
|
end
|
55
|
+
|
56
|
+
RBText::Cr = RBText::Cursor
|
data/lib/rbtext/formatting.rb
CHANGED
@@ -1,16 +1,6 @@
|
|
1
1
|
module RBText
|
2
2
|
module Formatting
|
3
|
-
|
4
|
-
:reset,
|
5
|
-
:bold,
|
6
|
-
:faint,
|
7
|
-
:italic,
|
8
|
-
:underline,
|
9
|
-
:blinking,
|
10
|
-
:strikethrough
|
11
|
-
]
|
12
|
-
|
13
|
-
def reset(f_opt = nil, mode: :str)
|
3
|
+
def self.reset(f_opt = nil, mode: :str)
|
14
4
|
if f_opt
|
15
5
|
r="\033[#{
|
16
6
|
f_opt =~ /^\033\[(1|2)m$/ ? "\033[22m" : "\033[2#{f_opt.gsub(/[^0-9]/, "")}m"
|
@@ -22,52 +12,42 @@ module RBText
|
|
22
12
|
print r if mode == :set
|
23
13
|
end
|
24
14
|
|
25
|
-
def bold(mode: :str)
|
15
|
+
def self.bold(mode: :str)
|
26
16
|
r="\033[1m"
|
27
17
|
return r if mode == :str
|
28
18
|
print r if mode == :set
|
29
19
|
end
|
30
20
|
|
31
|
-
def faint(mode: :str)
|
21
|
+
def self.faint(mode: :str)
|
32
22
|
r="\033[2m"
|
33
23
|
return r if mode == :str
|
34
24
|
print r if mode == :set
|
35
25
|
end
|
36
26
|
|
37
|
-
def italic(mode: :str)
|
27
|
+
def self.italic(mode: :str)
|
38
28
|
r="\033[3m"
|
39
29
|
return r if mode == :str
|
40
30
|
print r if mode == :set
|
41
31
|
end
|
42
32
|
|
43
|
-
def underline(mode: :str)
|
33
|
+
def self.underline(mode: :str)
|
44
34
|
r="\033[4m"
|
45
35
|
return r if mode == :str
|
46
36
|
print r if mode == :set
|
47
37
|
end
|
48
38
|
|
49
|
-
def blinking(mode: :str)
|
39
|
+
def self.blinking(mode: :str)
|
50
40
|
r="\033[5m"
|
51
41
|
return r if mode == :str
|
52
42
|
print r if mode == :set
|
53
43
|
end
|
54
44
|
|
55
|
-
def strikethrough(mode: :str)
|
45
|
+
def self.strikethrough(mode: :str)
|
56
46
|
r="\033[9m"
|
57
47
|
return r if mode == :str
|
58
48
|
print r if mode == :set
|
59
49
|
end
|
60
|
-
|
61
|
-
module_function
|
62
|
-
@@methods.each do |method|
|
63
|
-
module_function method
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
module F
|
68
|
-
include RBText::Formatting
|
69
|
-
@@methods.each do |method|
|
70
|
-
module_function method
|
71
|
-
end
|
72
50
|
end
|
73
51
|
end
|
52
|
+
|
53
|
+
RBText::F = RBText::Formatting
|
data/lib/rbtext/ftext.rb
CHANGED
data/lib/rbtext/screen.rb
CHANGED
@@ -1,42 +1,29 @@
|
|
1
1
|
module RBText
|
2
2
|
module Screen
|
3
|
-
|
4
|
-
:clear,
|
5
|
-
:clear_line,
|
6
|
-
:size,
|
7
|
-
:height,
|
8
|
-
:width
|
9
|
-
]
|
10
|
-
|
11
|
-
def clear
|
3
|
+
def self.clear
|
12
4
|
print "\033[2J"
|
13
5
|
end
|
14
6
|
|
15
|
-
def clear_line
|
7
|
+
def self.clear_line
|
16
8
|
print "\033[2K"
|
17
9
|
end
|
18
10
|
|
19
|
-
def size
|
11
|
+
def self.size
|
20
12
|
IO.console.winsize
|
21
13
|
end
|
22
14
|
|
23
|
-
def height
|
15
|
+
def self.height
|
24
16
|
self.size[0]
|
25
17
|
end
|
26
18
|
|
27
|
-
def width
|
19
|
+
def self.width
|
28
20
|
self.size[1]
|
29
21
|
end
|
30
22
|
|
31
|
-
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
module S
|
37
|
-
include RBText::Screen
|
38
|
-
@@methods.each do |method|
|
39
|
-
module_function method
|
23
|
+
def self.bell
|
24
|
+
print "\a"
|
40
25
|
end
|
41
26
|
end
|
42
27
|
end
|
28
|
+
|
29
|
+
RBText::S = RBText::Screen
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rbtext/colors'
|
2
|
+
require 'rbtext/formatting'
|
3
|
+
|
4
|
+
class String
|
5
|
+
def color(color, type: :fg)
|
6
|
+
RBText::Colors.color(color, type: type) + self + RBText::Colors.color(:reset, type: type)
|
7
|
+
end
|
8
|
+
|
9
|
+
def num_color(color, type: :fg)
|
10
|
+
RBText::Colors.num_color(color, type: type) + self + RBText::Colors.color(:reset, type: type)
|
11
|
+
end
|
12
|
+
|
13
|
+
def bold
|
14
|
+
RBText::Formatting.bold + self + RBText::Formatting.reset
|
15
|
+
end
|
16
|
+
|
17
|
+
def faint
|
18
|
+
RBText::Formatting.faint + self + RBText::Formatting.reset
|
19
|
+
end
|
20
|
+
|
21
|
+
def italic
|
22
|
+
RBText::Formatting.italic + self + RBText::Formatting.reset
|
23
|
+
end
|
24
|
+
|
25
|
+
def underline
|
26
|
+
RBText::Formatting.underline + self + RBText::Formatting.reset
|
27
|
+
end
|
28
|
+
|
29
|
+
def blinking
|
30
|
+
RBText::Formatting.blinking + self + RBText::Formatting.reset
|
31
|
+
end
|
32
|
+
|
33
|
+
def strikethrough
|
34
|
+
RBText::Formatting.strikethrough + self + RBText::Formatting.reset
|
35
|
+
end
|
36
|
+
end
|
data/lib/rbtext.rb
CHANGED
@@ -7,15 +7,13 @@ require "io/console"
|
|
7
7
|
|
8
8
|
module RBText
|
9
9
|
@ver_1 = 0
|
10
|
-
@ver_2 =
|
10
|
+
@ver_2 = 3
|
11
11
|
@ver_3 = 1
|
12
12
|
@ver_4 = ""
|
13
13
|
|
14
|
-
def version
|
14
|
+
def self.version
|
15
15
|
"#{@ver_1}.#{@ver_2}.#{@ver_3}#{".#{@ver_4}" if @ver_4.length > 1}"
|
16
16
|
end
|
17
|
-
|
18
|
-
module_function :version
|
19
17
|
end
|
20
18
|
|
21
19
|
module R
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbtext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthias Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: io
|
14
|
+
name: io-console
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.5.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.5.6
|
27
27
|
description: A gem for printing formatted text
|
28
28
|
email: matthias@matthiasclee.com
|
29
29
|
executables:
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/rbtext/formatting.rb
|
39
39
|
- lib/rbtext/ftext.rb
|
40
40
|
- lib/rbtext/screen.rb
|
41
|
+
- lib/rbtext/string_methods.rb
|
41
42
|
homepage: https://github.com/Matthiasclee/RBText
|
42
43
|
licenses:
|
43
44
|
- AGPL-3.0
|