rubytext 0.0.19 → 0.0.20
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 +5 -5
- data/lib/rubytext.rb +56 -34
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 01d2a45364981d0139df502a40e86e0b3cbd1186bae314e1f987dc704ba0c5cc
|
4
|
+
data.tar.gz: bab37c6c328abe1d33fd75c8a8f2c0e2a691a211f6f272d334802b5e4a219486
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cb6a7992dfc787cceffcef1036ec5678fddde72ea2ec22cbeef9e00e1fc01bb36ac9ae81c17102bb31ca948a5b7f0fe5d00e433dcf10faf9d18850c65d1160c
|
7
|
+
data.tar.gz: 39f142d6bc3136ff4bfefa80926753ffdec548a522b4a6d0ac363de83ca2417425ee53d7416e53a9ae3748b6247529acff52dc09663205b83dec74b3739026ee
|
data/lib/rubytext.rb
CHANGED
@@ -11,17 +11,27 @@ def debug(*args)
|
|
11
11
|
$debug.puts *args
|
12
12
|
end
|
13
13
|
|
14
|
+
def fb2cp(fg, bg)
|
15
|
+
debug "Colors are: #{fg} on #{bg}"
|
16
|
+
fg = X.const_get("COLOR_#{fg.upcase}")
|
17
|
+
bg = X.const_get("COLOR_#{bg.upcase}")
|
18
|
+
debug "Curses colors are: #{fg} on #{bg}"
|
19
|
+
cp = $ColorPairs[[fg, bg]]
|
20
|
+
debug "cp is: #{cp}"
|
21
|
+
[fg, bg, cp]
|
22
|
+
end
|
23
|
+
|
14
24
|
module RubyText
|
15
25
|
|
16
26
|
Colors = %w[black blue cyan green magenta red white yellow]
|
17
|
-
ColorPairs = {}
|
27
|
+
$ColorPairs = {}
|
18
28
|
num = 0
|
19
29
|
Colors.each do |fc|
|
20
30
|
Colors.each do |bc|
|
21
31
|
fg = X.const_get("COLOR_#{fc.upcase}")
|
22
32
|
bg = X.const_get("COLOR_#{bc.upcase}")
|
23
33
|
X.init_pair(num+=1, fg, bg) # FIXME backwards?
|
24
|
-
ColorPairs[[fg, bg]] = num
|
34
|
+
$ColorPairs[[fg, bg]] = num
|
25
35
|
end
|
26
36
|
end
|
27
37
|
|
@@ -46,20 +56,22 @@ module RubyText
|
|
46
56
|
end
|
47
57
|
|
48
58
|
class Window
|
49
|
-
def self.main
|
50
|
-
debug "Entering Window.main"
|
59
|
+
def self.main(fg: nil, bg: nil)
|
60
|
+
debug "Entering Window.main (#{fg}, #{bg}) => "
|
61
|
+
fg, bg, cp = fb2cp(fg, bg)
|
62
|
+
debug " computed #{fg}, #{bg}, #{cp}"
|
63
|
+
debug " cp|A_NORMAL = #{cp|X::A_NORMAL}"
|
51
64
|
@main_win = X.init_screen
|
52
65
|
X.start_color
|
53
|
-
|
54
|
-
# X.stdscr.bkgd(X.color_pair(1)|X::A_NORMAL)
|
66
|
+
X.stdscr.bkgd(cp|X::A_NORMAL)
|
55
67
|
rows, cols = @main_win.maxy, @main_win.maxx
|
56
68
|
debug "About to call .make"
|
57
|
-
@screen = self.make(@main_win, rows, cols, 0, 0, false
|
69
|
+
@screen = self.make(@main_win, rows, cols, 0, 0, false)
|
58
70
|
@screen
|
59
71
|
end
|
60
72
|
|
61
|
-
def self.make(cwin, high, wide, r0, c0, border
|
62
|
-
debug "make: #{[cwin, high, wide, r0, c0, border
|
73
|
+
def self.make(cwin, high, wide, r0, c0, border)
|
74
|
+
debug "make: #{[cwin, high, wide, r0, c0, border]}"
|
63
75
|
obj = self.allocate
|
64
76
|
debug "Allocate returned a #{obj.class}"
|
65
77
|
obj.instance_eval do
|
@@ -77,42 +89,36 @@ end
|
|
77
89
|
|
78
90
|
# debug "Setting STDSCR to Window.main"
|
79
91
|
|
80
|
-
STDSCR = RubyText::Window.main
|
81
|
-
$stdscr = STDSCR
|
92
|
+
# STDSCR = RubyText::Window.main
|
93
|
+
# $stdscr = STDSCR
|
82
94
|
|
83
|
-
|
84
|
-
|
85
|
-
|
95
|
+
=begin
|
96
|
+
Logic flow -
|
97
|
+
main
|
98
|
+
initscreen
|
99
|
+
start_color
|
100
|
+
make
|
101
|
+
STDSCR = RubyText::Window.main
|
102
|
+
$stdscr = STDSCR
|
86
103
|
|
87
|
-
|
88
|
-
# to the lower level...
|
104
|
+
=end
|
89
105
|
|
90
|
-
|
91
|
-
debug "method_missing: #{name} #{args.inspect}"
|
92
|
-
if name[0] == '_'
|
93
|
-
X.send(name[1..-1], *args)
|
94
|
-
else
|
95
|
-
raise "#{name} #{args.inspect}" # NoMethodError
|
96
|
-
end
|
97
|
-
end
|
106
|
+
###
|
98
107
|
|
99
|
-
|
100
|
-
RubyText::Window.new(high, wide, r0, c0, border, fg, bg)
|
101
|
-
end
|
108
|
+
module RubyText
|
102
109
|
|
103
110
|
def self.start(*args, log: nil, fg: nil, bg: nil)
|
104
111
|
$debug = File.new(log, "w") if log
|
112
|
+
Object.const_set(:STDSCR, RubyText::Window.main(fg: fg, bg: bg))
|
113
|
+
$stdscr = STDSCR
|
114
|
+
|
105
115
|
fg ||= :white
|
106
116
|
bg ||= :black
|
107
117
|
debug "fg = #{fg} is not a valid color" unless Colors.include?(fg.to_s)
|
108
118
|
debug "bg = #{bg} is not a valid color" unless Colors.include?(bg.to_s)
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
debug "Curses colors are: #{fg} on #{bg}"
|
113
|
-
cp = ColorPairs[[fg, bg]]
|
114
|
-
debug "cp is: #{cp}"
|
115
|
-
X.stdscr.bkgd(cp|X::A_NORMAL)
|
119
|
+
fg, bg, cp = fb2cp(fg, bg)
|
120
|
+
# X.bkgd(cp|X::A_NORMAL)
|
121
|
+
# X.clear
|
116
122
|
X.noecho
|
117
123
|
X.stdscr.keypad(true)
|
118
124
|
X.cbreak # by default
|
@@ -131,6 +137,22 @@ debug "cp is: #{cp}"
|
|
131
137
|
end
|
132
138
|
end
|
133
139
|
|
140
|
+
# For passing through arbitrary method calls
|
141
|
+
# to the lower level...
|
142
|
+
|
143
|
+
def self.method_missing(name, *args)
|
144
|
+
debug "method_missing: #{name} #{args.inspect}"
|
145
|
+
if name[0] == '_'
|
146
|
+
X.send(name[1..-1], *args)
|
147
|
+
else
|
148
|
+
raise "#{name} #{args.inspect}" # NoMethodError
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def RubyText.window(high, wide, r0, c0, border=false, fg=nil, bg=nil)
|
153
|
+
RubyText::Window.new(high, wide, r0, c0, border, fg, bg)
|
154
|
+
end
|
155
|
+
|
134
156
|
def self.hide_cursor
|
135
157
|
X.curs_set(0)
|
136
158
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubytext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
version: '0'
|
55
55
|
requirements: []
|
56
56
|
rubyforge_project:
|
57
|
-
rubygems_version: 2.
|
57
|
+
rubygems_version: 2.7.7
|
58
58
|
signing_key:
|
59
59
|
specification_version: 4
|
60
60
|
summary: A thick wrapper for Curses
|