rubytext 0.0.65 → 0.0.66
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/_demo.rb +118 -0
- data/examples/_showme.rb +58 -0
- data/examples/_slides +22 -0
- data/examples/check.rb +1 -1
- data/examples/foo +7 -0
- data/examples/slides +1 -1
- data/lib/_color.rb +69 -0
- data/lib/_window.rb +92 -0
- data/lib/output.rb +20 -37
- data/lib/rubytext.rb +2 -0
- data/lib/settings.rb +5 -3
- data/lib/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1026a49ec8ff0ecd96f14d6e34cb5bf689e277e2c619ea39f9746c899f5238a9
|
4
|
+
data.tar.gz: 8baa928f1c76383407165447ea3df23876f1fb698cfd05444088e78d5067fd5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4e118a18444c9831ecc6136f6ac36caa16fa6f60adb6fd4de5640d3b66901f623348d46306ac812387183163e30c674e47f0f2533e8c81f650f74d6094e10b4
|
7
|
+
data.tar.gz: 73a1fe904439c2f680dace4927528a7cff96afe84a4f3bb43ecd04ef7e9b9f4af4f191833dd61beef968cb91887b98f8cf88882521af86e511ba864524512bee
|
data/examples/_demo.rb
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
$LOAD_PATH.unshift "lib"
|
2
|
+
|
3
|
+
require 'rubytext'
|
4
|
+
|
5
|
+
def delay(sec, speed=1.0)
|
6
|
+
sleep sec/speed
|
7
|
+
end
|
8
|
+
|
9
|
+
speed = ARGV.first || 1.0
|
10
|
+
speed = speed.to_f
|
11
|
+
delay(speed)
|
12
|
+
|
13
|
+
RubyText.start(log: "mylog.txt", fg: Green, bg: Black)
|
14
|
+
|
15
|
+
print "Here goes... "
|
16
|
+
delay 2
|
17
|
+
|
18
|
+
ymax, xmax = STDSCR.rows, STDSCR.cols
|
19
|
+
|
20
|
+
puts "STDSCR is #{ymax.inspect} by #{xmax.inspect}"
|
21
|
+
delay 2
|
22
|
+
|
23
|
+
print "\nI can write here "
|
24
|
+
delay 2
|
25
|
+
puts "and then continue."
|
26
|
+
|
27
|
+
delay 2
|
28
|
+
print "I can jump away "
|
29
|
+
|
30
|
+
delay 2
|
31
|
+
STDSCR.go(20, 15) { puts "and print somewhere else" }
|
32
|
+
# ^ Same as: rcprint(20, 15, "and print somewhere else" }
|
33
|
+
|
34
|
+
delay 2
|
35
|
+
puts "and then return."
|
36
|
+
|
37
|
+
delay 3
|
38
|
+
print "I can hide the cursor... "
|
39
|
+
delay 1
|
40
|
+
RubyText.hide_cursor
|
41
|
+
delay 1
|
42
|
+
print "then show it again... "
|
43
|
+
delay 1
|
44
|
+
RubyText.show_cursor
|
45
|
+
delay 1
|
46
|
+
print "and hide it again. "
|
47
|
+
delay 1
|
48
|
+
RubyText.hide_cursor
|
49
|
+
delay 3
|
50
|
+
|
51
|
+
puts "\n\nNow watch as I create a window:"
|
52
|
+
|
53
|
+
mywin = RubyText.window(16, 40, 8, 14, fg: :blue, bg: :yellow)
|
54
|
+
|
55
|
+
delay 3
|
56
|
+
mywin.puts "\nNow I'm writing in a window."
|
57
|
+
mywin.puts "\nIts size is #{mywin.rows} rows by #{mywin.cols} cols"
|
58
|
+
mywin.puts "(or #{mywin.height}x#{mywin.width} with the frame).\n "
|
59
|
+
|
60
|
+
delay 4
|
61
|
+
mywin.puts "I always try to honor the borders of my window."
|
62
|
+
|
63
|
+
delay 2
|
64
|
+
mywin.puts "\nWatch as I place 50 random stars here..."
|
65
|
+
|
66
|
+
delay 2
|
67
|
+
|
68
|
+
50.times do
|
69
|
+
r = rand(mywin.rows)
|
70
|
+
c = rand(mywin.cols)
|
71
|
+
delay 0.1
|
72
|
+
mywin.rcprint(r, c, "*")
|
73
|
+
end
|
74
|
+
|
75
|
+
delay 4
|
76
|
+
mywin.output do
|
77
|
+
mywin.clear
|
78
|
+
puts "The window method called 'output'"
|
79
|
+
puts "will temporarily override STDSCR so that (in the code)"
|
80
|
+
puts "we don't have to use the window name over and over for stream I/O."
|
81
|
+
delay 4
|
82
|
+
# STDSCR.rcprint 25, 3, "Of course I can still print here if I want."
|
83
|
+
STDSCR.go 25, 3
|
84
|
+
STDSCR.print "Of course I can still print here if I want."
|
85
|
+
delay 3
|
86
|
+
puts "\nOne moment..."
|
87
|
+
delay 4
|
88
|
+
end
|
89
|
+
|
90
|
+
mywin.output do
|
91
|
+
mywin.clear
|
92
|
+
puts "The []= method allows us to place characters in"
|
93
|
+
puts "the window (without auto-refresh)."
|
94
|
+
puts "\nLet's see the '50 stars' trick again:"
|
95
|
+
delay 5
|
96
|
+
50.times do
|
97
|
+
r = rand(mywin.rows)
|
98
|
+
c = rand(mywin.cols)
|
99
|
+
mywin[r, c] = "*"
|
100
|
+
end
|
101
|
+
mywin.cwin.refresh
|
102
|
+
end
|
103
|
+
|
104
|
+
delay 5
|
105
|
+
mywin.output do
|
106
|
+
mywin.clear
|
107
|
+
mywin.puts "The [] method (zero-based) is still buggy, but let's try it."
|
108
|
+
mywin.puts "XYZ"
|
109
|
+
ch = mywin[2,2]
|
110
|
+
mywin.puts "The char at [2,2] is: #{ch.chr.inspect}"
|
111
|
+
end
|
112
|
+
|
113
|
+
delay 4
|
114
|
+
mywin.puts "\nThat's all for now."
|
115
|
+
delay 1
|
116
|
+
mywin.puts "\nPress any key to exit."
|
117
|
+
|
118
|
+
getch
|
data/examples/_showme.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rubytext'
|
2
|
+
require 'timeout'
|
3
|
+
|
4
|
+
def next_slide
|
5
|
+
RubyText.hide_cursor
|
6
|
+
sleep 0.2
|
7
|
+
Timeout.timeout(999) do
|
8
|
+
STDSCR.go @rmax-1-@upward, 0
|
9
|
+
STDSCR.center "Press any key..."
|
10
|
+
getch
|
11
|
+
end
|
12
|
+
rescue Timeout::Error
|
13
|
+
end
|
14
|
+
|
15
|
+
def show_code(prog, upward=0)
|
16
|
+
text = File.read(prog)
|
17
|
+
nlines = text.split("\n").size
|
18
|
+
|
19
|
+
prog_top = @rmax-nlines-3 - upward.to_i
|
20
|
+
code = RubyText.window(nlines+2, @cmax-2, prog_top, 1,
|
21
|
+
fg: Green, bg: Black)
|
22
|
+
code.puts text
|
23
|
+
|
24
|
+
right = STDSCR.cols - prog.length - 8
|
25
|
+
STDSCR.go prog_top, right
|
26
|
+
STDSCR.print "[ #{prog} ]"
|
27
|
+
STDSCR.go 0,0
|
28
|
+
end
|
29
|
+
|
30
|
+
def check_window
|
31
|
+
if @rmax < 25 || @cmax < 80
|
32
|
+
puts "\n Your window should be 25x80 or larger,"
|
33
|
+
puts " but this one is only #{@rmax}x#{@cmax}."
|
34
|
+
puts " Please resize and run again!"
|
35
|
+
getch
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
#### Main
|
41
|
+
|
42
|
+
RubyText.start(:cbreak, log: "/tmp/showme.log", fg: White, bg: Black)
|
43
|
+
|
44
|
+
@cmax = STDSCR.cols
|
45
|
+
@rmax = STDSCR.rows
|
46
|
+
|
47
|
+
RubyText.hide_cursor
|
48
|
+
|
49
|
+
check_window
|
50
|
+
|
51
|
+
prog, @upward = ARGV
|
52
|
+
@upward ||= 0
|
53
|
+
|
54
|
+
show_code(prog, @upward)
|
55
|
+
|
56
|
+
require_relative prog
|
57
|
+
|
58
|
+
next_slide # if @upward == 0
|
data/examples/_slides
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
mylib = `gem which rubytext`.chomp
|
4
|
+
examples = mylib.sub(%r[/lib/rubytext.rb], "/examples")
|
5
|
+
|
6
|
+
Dir.chdir(examples)
|
7
|
+
|
8
|
+
rc = system("ruby check.rb")
|
9
|
+
exit unless rc
|
10
|
+
|
11
|
+
# FIXME
|
12
|
+
# - use names instead of numbers?
|
13
|
+
# - convert showme into a method?
|
14
|
+
|
15
|
+
1.upto(22) do |n|
|
16
|
+
next if n == 11 # junk this one
|
17
|
+
num = '%02d' % n
|
18
|
+
prog = "prog#{num}.rb"
|
19
|
+
upward = 11 if n == 22 # dumbest hack ever!
|
20
|
+
system("ruby showme.rb #{prog} #{upward}")
|
21
|
+
end
|
22
|
+
|
data/examples/check.rb
CHANGED
data/examples/foo
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
#<ArgumentError: wrong number of arguments (given 2, expected 1)>
|
2
|
+
/Users/Hal/.rvm/gems/ruby-2.4.2/gems/rubytext-0.0.65/lib/color.rb:30:in `[]'
|
3
|
+
/Users/Hal/.rvm/gems/ruby-2.4.2/gems/rubytext-0.0.65/lib/color.rb:30:in `colors'
|
4
|
+
/Users/Hal/.rvm/gems/ruby-2.4.2/gems/rubytext-0.0.65/lib/color.rb:35:in `colors!'
|
5
|
+
/Users/Hal/.rvm/gems/ruby-2.4.2/gems/rubytext-0.0.65/lib/window.rb:33:in `main'
|
6
|
+
/Users/Hal/.rvm/gems/ruby-2.4.2/gems/rubytext-0.0.65/lib/settings.rb:75:in `start'
|
7
|
+
check.rb:3:in `<main>'
|
data/examples/slides
CHANGED
data/lib/_color.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
|
2
|
+
def fb2cp(fg, bg)
|
3
|
+
fg ||= Blue
|
4
|
+
bg ||= White
|
5
|
+
f2 = X.const_get("COLOR_#{fg.upcase}")
|
6
|
+
b2 = X.const_get("COLOR_#{bg.upcase}")
|
7
|
+
cp = RubyText::ColorPairs[[fg, bg]]
|
8
|
+
[f2, b2, cp]
|
9
|
+
end
|
10
|
+
|
11
|
+
class RubyText::Color
|
12
|
+
attr_reader :curses
|
13
|
+
|
14
|
+
def self.pair(fg, bg)
|
15
|
+
RubyText::ColorPairs[[fg, bg]]
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(sym)
|
19
|
+
@color = sym
|
20
|
+
@curses = X.const_get("COLOR_#{sym.upcase}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module RubyText
|
25
|
+
Colors = [Black, Blue, Cyan, Green, Magenta, Red, White, Yellow]
|
26
|
+
|
27
|
+
# Initialize all color pairs
|
28
|
+
ColorPairs = {}
|
29
|
+
num = 0
|
30
|
+
color_file = File.new("pairs.out", "w")
|
31
|
+
Colors.each do |fsym|
|
32
|
+
Colors.each do |bsym|
|
33
|
+
cfg, cbg = Color.new(fsym).curses, Color.new(bsym).curses
|
34
|
+
X.init_pair(num+=1, cfg, cbg)
|
35
|
+
ColorPairs[[fsym, bsym]] = num
|
36
|
+
# debug "pair #{num} = #{[fsym, bsym]}"
|
37
|
+
color_file.puts "pair #{num} = #{[fsym, bsym]}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
color_file.close
|
41
|
+
end
|
42
|
+
|
43
|
+
class RubyText::Window
|
44
|
+
def self.set_colors(cwin, fg, bg)
|
45
|
+
@cfile = File.new("colors-#{rand(1000)}.out", "w")
|
46
|
+
cp = RubyText::Color.pair(fg, bg)
|
47
|
+
@cfile.puts "Setting: #{cp} = pair #{[fg, bg].inspect}"
|
48
|
+
@cfile.close
|
49
|
+
exit
|
50
|
+
cwin.color_set(cp)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.colorize!(win, fg, bg)
|
54
|
+
set_colors(win, fg, bg)
|
55
|
+
num = win.maxx * win.maxy
|
56
|
+
win.setpos(0, 0)
|
57
|
+
win.addstr(' '*num)
|
58
|
+
win.setpos(0, 0)
|
59
|
+
win.refresh
|
60
|
+
end
|
61
|
+
|
62
|
+
def fg=(sym)
|
63
|
+
self.class.set_colors(@cwin, sym, @bg) # BREAK??
|
64
|
+
end
|
65
|
+
|
66
|
+
def bg=(sym)
|
67
|
+
self.class.set_colors(@cwin, @fg, sym)
|
68
|
+
end
|
69
|
+
end
|
data/lib/_window.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
class RubyText::Window
|
2
|
+
Vert, Horiz = X::A_VERTICAL, X::A_HORIZONTAL
|
3
|
+
|
4
|
+
attr_reader :cwin, :rows, :cols, :width, :height, :scrolling
|
5
|
+
attr_writer :fg, :bg
|
6
|
+
|
7
|
+
# Better to use Window.window IRL
|
8
|
+
|
9
|
+
def initialize(high=nil, wide=nil, r0=1, c0=1, border=false, fg=nil, bg=nil, scroll=false)
|
10
|
+
@wide, @high, @r0, @c0 = wide, high, r0, c0
|
11
|
+
@border, @fg, @bg = border, fg, bg
|
12
|
+
@cwin = X::Window.new(high, wide, r0, c0)
|
13
|
+
RubyText::Window.colorize!(@cwin, fg, bg)
|
14
|
+
if @border
|
15
|
+
@cwin.box(Vert, Horiz)
|
16
|
+
@outer = @cwin
|
17
|
+
@outer.refresh
|
18
|
+
@cwin = X::Window.new(high-2, wide-2, r0+1, c0+1)
|
19
|
+
RubyText::Window.colorize!(@cwin, fg, bg)
|
20
|
+
else
|
21
|
+
@outer = @cwin
|
22
|
+
end
|
23
|
+
@rows, @cols = @cwin.maxy, @cwin.maxx # unnecessary really...
|
24
|
+
@width, @height = @cols + 2, @rows + 2 if @border
|
25
|
+
@scrolling = scroll
|
26
|
+
@cwin.scrollok(scroll)
|
27
|
+
@cwin.refresh
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.main(fg: nil, bg: nil, scroll: false)
|
31
|
+
main_win = X.init_screen
|
32
|
+
X.start_color
|
33
|
+
colorize!(main_win, fg, bg)
|
34
|
+
rows, cols = main_win.maxy, main_win.maxx
|
35
|
+
self.make(main_win, rows, cols, 0, 0, border: false,
|
36
|
+
fg: fg, bg: bg, scroll: scroll)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.make(cwin, high, wide, r0, c0, border: true, fg: White, bg: Black, scroll: false)
|
40
|
+
obj = self.allocate
|
41
|
+
obj.instance_eval do
|
42
|
+
@outer = @cwin = cwin
|
43
|
+
@wide, @high, @r0, @c0 = wide, high, r0, c0
|
44
|
+
@fg, @bg = fg, bg
|
45
|
+
@border = border
|
46
|
+
@rows, @cols = high, wide
|
47
|
+
@width, @height = @cols + 2, @rows + 2 if @border
|
48
|
+
end
|
49
|
+
obj.scrolling(scroll)
|
50
|
+
obj
|
51
|
+
end
|
52
|
+
|
53
|
+
# FIXME refactor bad code
|
54
|
+
|
55
|
+
def scrolling(flag=true)
|
56
|
+
@scrolling = flag
|
57
|
+
@cwin.scrollok(flag)
|
58
|
+
end
|
59
|
+
|
60
|
+
def noscroll
|
61
|
+
@scrolling = false
|
62
|
+
@cwin.scrollok(false)
|
63
|
+
end
|
64
|
+
|
65
|
+
def scroll(n=1)
|
66
|
+
if n < 0
|
67
|
+
@cwin.scrl(n)
|
68
|
+
(-n).times {|i| rcprint i, 0, (' '*@cols) }
|
69
|
+
else
|
70
|
+
n.times do |i|
|
71
|
+
@cwin.scroll
|
72
|
+
scrolling(false)
|
73
|
+
rcprint @rows-1, 0, (' '*@cols)
|
74
|
+
scrolling
|
75
|
+
end
|
76
|
+
end
|
77
|
+
@cwin.refresh
|
78
|
+
end
|
79
|
+
|
80
|
+
def screen_text(file = nil)
|
81
|
+
lines = []
|
82
|
+
0.upto(self.rows-1) do |r|
|
83
|
+
line = ""
|
84
|
+
0.upto(self.cols-1) do |c|
|
85
|
+
line << self[r, c]
|
86
|
+
end
|
87
|
+
lines << line
|
88
|
+
end
|
89
|
+
File.open(file, "w") {|f| f.puts lines } if file
|
90
|
+
lines
|
91
|
+
end
|
92
|
+
end
|
data/lib/output.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
$LOAD_PATH << "lib"
|
2
2
|
|
3
|
-
# require 'global' # FIXME later
|
4
|
-
|
5
3
|
class RubyText::Window
|
6
4
|
def center(str)
|
7
5
|
r, c = self.rc
|
8
6
|
n = @cwin.maxx - str.length
|
9
7
|
go r, n/2
|
10
|
-
puts str
|
8
|
+
self.puts str
|
11
9
|
end
|
12
10
|
|
13
11
|
def putch(ch)
|
@@ -15,44 +13,32 @@ class RubyText::Window
|
|
15
13
|
self[r, c] = ch[0]
|
16
14
|
end
|
17
15
|
|
18
|
-
def need_crlf?(sym, args)
|
19
|
-
sym != :print && # print doesn't default to crlf
|
20
|
-
args[-1][-1] != "\n" # last char is a literal linefeed
|
21
|
-
end
|
22
|
-
|
23
16
|
# FIXME Please refactor the Hal out of this.
|
24
17
|
|
18
|
+
def special?(arg)
|
19
|
+
RubyText::Colors.include?(arg) ||
|
20
|
+
arg.is_a?(RubyText::Effects)
|
21
|
+
end
|
22
|
+
|
25
23
|
def delegate_output(sym, *args)
|
26
24
|
args = [""] if args.empty?
|
25
|
+
args += ["\n"] unless sym == :print
|
27
26
|
RubyText::Window.colors(@cwin, @fg, @bg) # FIXME?
|
28
27
|
if sym == :p
|
29
28
|
args.map!(&:inspect)
|
30
29
|
else
|
31
|
-
args.map!
|
32
|
-
if RubyText::Colors.include?(x) || x.is_a?(RubyText::Effects)
|
33
|
-
x
|
34
|
-
else
|
35
|
-
x.to_s
|
36
|
-
end
|
37
|
-
end
|
30
|
+
args.map! {|x| special?(x) ? x : x.to_s }
|
38
31
|
end
|
39
|
-
flag = need_crlf?(sym, args) # Limitation: Can't print color symbols!
|
40
32
|
args.each do |arg|
|
41
|
-
|
33
|
+
case
|
34
|
+
when arg.is_a?(Symbol) # must be a color
|
42
35
|
RubyText::Window.colors(@cwin, arg, @bg) # FIXME?
|
43
|
-
|
36
|
+
when arg.is_a?(RubyText::Effects)
|
44
37
|
X.attrset(arg.value)
|
45
38
|
else
|
46
|
-
arg.each_char
|
47
|
-
if ch == "\n"
|
48
|
-
crlf
|
49
|
-
else
|
50
|
-
@cwin.addch(ch)
|
51
|
-
end
|
52
|
-
end
|
39
|
+
arg.each_char {|ch| ch == "\n" ? crlf : @cwin.addch(ch) }
|
53
40
|
end
|
54
41
|
end
|
55
|
-
crlf if flag
|
56
42
|
RubyText::Window.colors(@cwin, @fg, @bg) # FIXME?
|
57
43
|
@cwin.refresh
|
58
44
|
end
|
@@ -105,12 +91,11 @@ class RubyText::Window
|
|
105
91
|
end
|
106
92
|
|
107
93
|
def clear
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
win.refresh
|
94
|
+
num = @cwin.maxx * @cwin.maxy
|
95
|
+
home
|
96
|
+
@cwin.addstr(' '*num)
|
97
|
+
home
|
98
|
+
@cwin.refresh
|
114
99
|
end
|
115
100
|
|
116
101
|
def output(&block)
|
@@ -120,12 +105,10 @@ class RubyText::Window
|
|
120
105
|
end
|
121
106
|
|
122
107
|
def [](r, c)
|
123
|
-
|
124
|
-
@cwin.
|
125
|
-
ch =
|
126
|
-
@cwin.setpos *save
|
108
|
+
ch = nil
|
109
|
+
go(r, c) { ch = @cwin.inch }
|
110
|
+
debug "ch = #{ch} ch.chr = #{ch.chr}"
|
127
111
|
ch.chr
|
128
|
-
# go(r, c) { ch = @cwin.inch }
|
129
112
|
end
|
130
113
|
|
131
114
|
def []=(r, c, char)
|
data/lib/rubytext.rb
CHANGED
data/lib/settings.rb
CHANGED
@@ -71,8 +71,9 @@ module RubyText
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def self.start(*args, log: nil, fg: nil, bg: nil, scroll: false)
|
74
|
-
$debug
|
75
|
-
|
74
|
+
$debug ||= File.new(log, "w") if log
|
75
|
+
main = RubyText::Window.main(fg: fg, bg: bg, scroll: scroll)
|
76
|
+
Object.const_set(:STDSCR, main)
|
76
77
|
$stdscr = STDSCR
|
77
78
|
fg, bg, cp = fb2cp(fg, bg)
|
78
79
|
self.set(:_echo, :cbreak) # defaults
|
@@ -80,7 +81,8 @@ module RubyText
|
|
80
81
|
rescue => err
|
81
82
|
debug(err.inspect)
|
82
83
|
debug(err.backtrace)
|
83
|
-
|
84
|
+
exit
|
85
|
+
# raise RTError("#{err}")
|
84
86
|
end
|
85
87
|
|
86
88
|
def self.stop
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.66
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -41,8 +41,12 @@ files:
|
|
41
41
|
- "./rubytext.gemspec"
|
42
42
|
- bin/rubytext
|
43
43
|
- examples/README
|
44
|
+
- examples/_demo.rb
|
45
|
+
- examples/_showme.rb
|
46
|
+
- examples/_slides
|
44
47
|
- examples/check.rb
|
45
48
|
- examples/demo.rb
|
49
|
+
- examples/foo
|
46
50
|
- examples/ide.rb
|
47
51
|
- examples/prog01.rb
|
48
52
|
- examples/prog02.rb
|
@@ -68,6 +72,8 @@ files:
|
|
68
72
|
- examples/prog22.rb
|
69
73
|
- examples/showme.rb
|
70
74
|
- examples/slides
|
75
|
+
- lib/_color.rb
|
76
|
+
- lib/_window.rb
|
71
77
|
- lib/color.rb
|
72
78
|
- lib/effects.rb
|
73
79
|
- lib/keys.rb
|