rbtext 0.3.2 → 0.3.4

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ftext +33 -11
  3. data/lib/rbtext/screen.rb +12 -0
  4. data/lib/rbtext.rb +2 -1
  5. metadata +36 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25c59524b5af0b4acca39400131e5b938e80089937f67fd655a3251cc76d9911
4
- data.tar.gz: a8d5abe5d2eb15ef94954d496a2c249cd7888cfa4a1e13604c5b6ada108b1cc5
3
+ metadata.gz: ccdee9f23008ced0f1bdc97a19f38fa63328a34c627c002c516b7e8eab6fd12b
4
+ data.tar.gz: 5bd460e3387683c628310b351b377ac614672cdf697da0d0f136cfdee04bd148
5
5
  SHA512:
6
- metadata.gz: 392a2a3e4edc646db3470d43cc2689b02cb61d3b3f1280c16baef95c61195fa75509e406d90bfc9362332e145a1f5ce810ee0598b91d6e203b748949f4e865fd
7
- data.tar.gz: 43c39fb22e69d869886cf69625c8b385c4b1547b48d3b9c3c5138555af8b23abccc089bb18bd40e48e31b37a605d11499a6781b60c2da4a67472ffcbf915218f
6
+ metadata.gz: 2510193ee742687619d2655a3b744f929ea0af609a6840d2d53001bbeef642a188c122ae4fcc2b5279ce2157b5ca00451cf0a21c8f988d16fdf62b11b94d1b3c
7
+ data.tar.gz: aa33777189a62c0acaf2b6a30361db34b419404e9bcc9061f8d17ea534529b0a39855c103cb4281772e6cea581a6306af7ba91588f595cbd515c4d543104852d
data/bin/ftext CHANGED
@@ -1,26 +1,48 @@
1
1
  #!/usr/bin/env ruby
2
2
  require_relative '../lib/rbtext.rb'
3
+ require 'argparse'
3
4
 
4
- params = (ARGV[1..ARGV.length-1]).to_a
5
+ opts = {
6
+ dump: { has_argument: false },
7
+ noreset: { has_argument: false },
8
+ stdin: { has_argument: false },
9
+ help: { has_argument: false }
10
+ }
5
11
 
6
- if STDIN.tty? && ARGV[0]
12
+ switches = {}
13
+
14
+ args = ArgsParser::Args.new(options: opts, switches: switches)
15
+
16
+ if args.options[:help]
17
+ puts "RBtext ftext #{RBText.version}"
18
+ puts "Syntax: ftext [ftext] [options]"
19
+ puts "Options"
20
+ puts "--dump - Output actual escape codes"
21
+ puts "--noreset - Doesn't reset formatting when applying ftext to piped input"
22
+ puts "--stdin - Get ftext from pipe"
23
+ exit
24
+ end
25
+
26
+ if STDIN.tty? && ARGV[0] # If no pipe input and argument provided
7
27
  txt = ARGV[0].to_s
8
- elsif STDIN.tty?
9
- return
28
+ elsif !STDIN.tty? && args.options[:stdin] # If pipe input and no argument provided
29
+ ft = STDIN.gets
30
+ print R::Ft.new(ft)
31
+ exit
10
32
  else
11
33
  if ARGV[0]
12
34
  txt = []
13
35
 
14
- args = ARGV[0].split(',')
36
+ ftargs = args.data[0].split(',')
15
37
  lines = STDIN.each_line.to_a
16
38
 
17
- if args.length < lines.length
18
- x = lines.length/args.length
19
- args = args * (x+1)
39
+ if ftargs.length < lines.length
40
+ x = lines.length/ftargs.length
41
+ ftargs = ftargs * (x+1)
20
42
  end
21
43
 
22
44
  (0..lines.length-1).each do |l|
23
- txt << "#{"_.f:reset._" if !params.include?("--noreset")}_.#{args[l]}._"+lines[l].gsub("_", "\0004")
45
+ txt << "#{"_.f:reset._" if !args.options[:noreset]}_.#{ftargs[l]}._"+lines[l].gsub("_", "\0004")
24
46
  end
25
47
 
26
48
  txt = txt.join
@@ -30,5 +52,5 @@ else
30
52
  end
31
53
 
32
54
  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")
55
+ print out.dump.sub("\"", "").reverse.sub("\"", "").reverse if args.options[:dump]
56
+ print out if !args.options[:dump]
data/lib/rbtext/screen.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  module RBText
2
2
  module Screen
3
+ @@key_press_mappings = {:escape=>"\e", :f1=>"\eOP", :f2=>"\eOQ", :f3=>"\eOR", :f4=>"\eOS", :f5=>"\e[15~", :f6=>"\e[17~", :f7=>"\e[18~", :f8=>"\e[19~", :f9=>"\e[20~", :f10=>"\e[21~", :f11=>"\e[23~", :f12=>"\e[24~", :home=>"\e[1~", :end=>"\e[4~", :insert=>"\e[2~", :delete=>"\e[3~", "~"=>"~", "!"=>"!", "@"=>"@", "#"=>"#", "$"=>"$", "%"=>"%", "^"=>"^", "&"=>"&", "*"=>"*", "("=>"(", ")"=>")", "_"=>"_", "+"=>"+", :backspace=>"\u007F", "`"=>"`", "1"=>"1", "2"=>"2", "3"=>"3", "4"=>"4", "5"=>"5", "6"=>"6", "7"=>"7", "8"=>"8", "9"=>"9", "0"=>"0", "-"=>"-", "="=>"=", :tab=>"\t", "q"=>"q", "Q"=>"Q", :"ctrl-q"=>"\u0011", "w"=>"w", "W"=>"W", :"ctrl-w"=>"\u0017", "e"=>"e", "E"=>"E", :"ctrl-e"=>"\u0005", "r"=>"r", "R"=>"R", :"ctrl-r"=>"\u0012", "t"=>"t", "T"=>"T", :"ctrl-t"=>"\u0014", "y"=>"y", "Y"=>"Y", :"ctrl-y"=>"\u0019", "u"=>"u", "U"=>"U", :"ctrl-u"=>"\u0015", "i"=>"i", "I"=>"I", :"ctrl-i"=>"\t", "o"=>"o", "O"=>"O", :"ctrl-o"=>"\u000F", "p"=>"p", "P"=>"P", :"ctrl-p"=>"\u0010", "["=>"[", "]"=>"]", "\\"=>"\\", "{"=>"{", "}"=>"}", "|"=>"|", "a"=>"a", "A"=>"A", :"ctrl-a"=>"\u0001", "s"=>"s", "S"=>"S", :"ctrl-s"=>"\u0013", "d"=>"d", "D"=>"D", :"ctrl-d"=>"\u0004", "f"=>"f", "F"=>"F", :"ctrl-f"=>"\u0006", "g"=>"g", "G"=>"G", :"ctrl-g"=>"\a", "h"=>"h", "H"=>"H", :"ctrl-h"=>"\b", "j"=>"j", "J"=>"J", :"ctrl-j"=>"\n", "k"=>"k", "K"=>"K", :"ctrl-k"=>"\v", "l"=>"l", "L"=>"L", :"ctrl-l"=>"\f", ";"=>";", "'"=>"'", ":"=>":", "\""=>"\"", :enter=>"\r", "z"=>"z", "Z"=>"Z", :"ctrl-z"=>"\u001A", "x"=>"x", "X"=>"X", :"ctrl-x"=>"\u0018", "c"=>"c", "C"=>"C", :"ctrl-c"=>"\u0003", "v"=>"v", "V"=>"V", :"ctrl-v"=>"\u0016", "b"=>"b", "B"=>"B", :"ctrl-b"=>"\u0002", "n"=>"n", "N"=>"N", :"ctrl-n"=>"\u000E", "m"=>"m", "M"=>"M", :"ctrl-m"=>"\r", ","=>",", "."=>".", "/"=>"/", "<"=>"<", ">"=>">", "?"=>"?", :up=>"\e[A", :down=>"\e[B", :left=>"\e[D", :right=>"\e[C", :pageup=>"\e[5~", :pagedown=>"\e[6~"}
4
+
3
5
  def self.clear
4
6
  print "\033[2J"
5
7
  end
@@ -23,6 +25,16 @@ module RBText
23
25
  def self.bell
24
26
  print "\a"
25
27
  end
28
+
29
+ def self.getch
30
+ out = STDIN.getch
31
+
32
+ while STDIN.ready? do
33
+ out << STDIN.getch
34
+ end
35
+
36
+ return @@key_press_mappings.key(out)
37
+ end
26
38
  end
27
39
  end
28
40
 
data/lib/rbtext.rb CHANGED
@@ -4,11 +4,12 @@ require_relative "rbtext/formatting.rb"
4
4
  require_relative "rbtext/ftext.rb"
5
5
  require_relative "rbtext/screen.rb"
6
6
  require "io/console"
7
+ require "io/wait"
7
8
 
8
9
  module RBText
9
10
  @ver_1 = 0
10
11
  @ver_2 = 3
11
- @ver_3 = 2
12
+ @ver_3 = 4
12
13
  @ver_4 = ""
13
14
 
14
15
  def self.version
metadata CHANGED
@@ -1,29 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Lee
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-27 00:00:00.000000000 Z
11
+ date: 2024-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: io-console
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
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
26
  version: 0.5.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: io-wait
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: argparse
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.3
27
55
  description: A gem for printing formatted text
28
56
  email: matthias@matthiasclee.com
29
57
  executables:
@@ -43,7 +71,7 @@ homepage: https://github.com/Matthiasclee/RBText
43
71
  licenses:
44
72
  - AGPL-3.0
45
73
  metadata: {}
46
- post_install_message:
74
+ post_install_message:
47
75
  rdoc_options: []
48
76
  require_paths:
49
77
  - lib
@@ -58,8 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
86
  - !ruby/object:Gem::Version
59
87
  version: '0'
60
88
  requirements: []
61
- rubygems_version: 3.1.6
62
- signing_key:
89
+ rubygems_version: 3.2.3
90
+ signing_key:
63
91
  specification_version: 4
64
92
  summary: RBText
65
93
  test_files: []