rubytext 0.0.86 → 0.0.87
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/examples/prog21.rb +1 -1
- data/examples/showme.rb +8 -8
- data/examples/slides +23 -23
- data/lib/color.rb +8 -13
- data/lib/effects.rb +13 -9
- data/lib/menu.rb +11 -4
- data/lib/version.rb +1 -1
- data/lib/window.rb +6 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a39b4c532ccbd898dc02313b42d209f287066dedd723ac626bdbce565d33ed1
|
4
|
+
data.tar.gz: b0e729eb203af8688c493464bd4f5e0b029a2951e8a70964bb878f99c02c792b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f79b5eba776e61bc8ab656c951e01409e25047298eff671ea197d9f1bde14aec83067042c685780154e66db0fa34ffcee36917bd89c6863b675656d111cd2d03
|
7
|
+
data.tar.gz: 1b8638507d0ba10d4807bd2c7a9724e2a222ca1c22e40de3312c4be3935fd0dd2c013c9d2a64c1dcdede16585a1f35de65adca057d49c10589ec83a76e295685
|
data/examples/prog21.rb
CHANGED
data/examples/showme.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'rubytext'
|
2
|
-
require 'timeout'
|
3
2
|
|
4
3
|
def next_slide
|
5
4
|
RubyText.hide_cursor
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
case @proceed
|
6
|
+
when /\d+/
|
7
|
+
sleep @proceed.to_i
|
8
|
+
when "pause"
|
9
|
+
STDSCR.go @rmax-1-@upward, 0
|
10
|
+
STDSCR.center "Press any key..."
|
11
|
+
getch
|
11
12
|
end
|
12
|
-
rescue Timeout::Error
|
13
13
|
end
|
14
14
|
|
15
15
|
def show_code(prog, upward=0)
|
@@ -48,7 +48,7 @@ RubyText.hide_cursor
|
|
48
48
|
|
49
49
|
check_window
|
50
50
|
|
51
|
-
prog, @upward = ARGV
|
51
|
+
prog, @proceed, @upward = ARGV
|
52
52
|
@upward ||= 0
|
53
53
|
|
54
54
|
show_code(prog, @upward)
|
data/examples/slides
CHANGED
@@ -13,27 +13,27 @@ exit unless rc
|
|
13
13
|
# - convert showme into a method?
|
14
14
|
|
15
15
|
system("ruby showme.rb prog01.rb")
|
16
|
-
system("ruby showme.rb prog02.rb")
|
17
|
-
system("ruby showme.rb prog03.rb")
|
18
|
-
system("ruby showme.rb prog04.rb")
|
19
|
-
system("ruby showme.rb prog05.rb")
|
20
|
-
system("ruby showme.rb prog06.rb")
|
21
|
-
system("ruby showme.rb prog07.rb")
|
22
|
-
system("ruby showme.rb prog08.rb")
|
23
|
-
system("ruby showme.rb prog09.rb")
|
24
|
-
system("ruby showme.rb prog10.rb")
|
25
|
-
system("ruby showme.rb prog12.rb")
|
26
|
-
system("ruby showme.rb prog13.rb")
|
27
|
-
system("ruby showme.rb prog14.rb")
|
28
|
-
system("ruby showme.rb prog15.rb")
|
29
|
-
system("ruby showme.rb prog16.rb")
|
30
|
-
system("ruby showme.rb prog17.rb")
|
31
|
-
system("ruby showme.rb prog18.rb")
|
32
|
-
system("ruby showme.rb prog19.rb")
|
33
|
-
system("ruby showme.rb prog20.rb")
|
34
|
-
system("ruby showme.rb prog21.rb")
|
35
|
-
system("ruby showme.rb prog22.rb 11")
|
36
|
-
system("ruby showme.rb prog23.rb")
|
37
|
-
system("ruby showme.rb prog24.rb")
|
38
|
-
system("ruby showme.rb prog25.rb")
|
16
|
+
system("ruby showme.rb prog02.rb pause")
|
17
|
+
system("ruby showme.rb prog03.rb pause")
|
18
|
+
system("ruby showme.rb prog04.rb pause")
|
19
|
+
system("ruby showme.rb prog05.rb pause")
|
20
|
+
system("ruby showme.rb prog06.rb pause")
|
21
|
+
system("ruby showme.rb prog07.rb pause")
|
22
|
+
system("ruby showme.rb prog08.rb pause")
|
23
|
+
system("ruby showme.rb prog09.rb pause")
|
24
|
+
system("ruby showme.rb prog10.rb pause")
|
25
|
+
system("ruby showme.rb prog12.rb pause")
|
26
|
+
system("ruby showme.rb prog13.rb pause")
|
27
|
+
system("ruby showme.rb prog14.rb pause")
|
28
|
+
system("ruby showme.rb prog15.rb pause")
|
29
|
+
system("ruby showme.rb prog16.rb pause")
|
30
|
+
system("ruby showme.rb prog17.rb pause")
|
31
|
+
system("ruby showme.rb prog18.rb pause")
|
32
|
+
system("ruby showme.rb prog19.rb pause")
|
33
|
+
system("ruby showme.rb prog20.rb pause")
|
34
|
+
system("ruby showme.rb prog21.rb pause")
|
35
|
+
system("ruby showme.rb prog22.rb pause 11")
|
36
|
+
system("ruby showme.rb prog23.rb pause")
|
37
|
+
system("ruby showme.rb prog24.rb pause")
|
38
|
+
system("ruby showme.rb prog25.rb pause")
|
39
39
|
|
data/lib/color.rb
CHANGED
@@ -19,12 +19,6 @@ class RubyText::Color
|
|
19
19
|
def self.pair(fg, bg)
|
20
20
|
nf = index(fg)
|
21
21
|
nb = index(bg)
|
22
|
-
File.open("/tmp/pair.out", "w") do |f|
|
23
|
-
f.puts "fg, bg = #{[fg, bg].inspect}"
|
24
|
-
f.puts "Colors = #{Colors.inspect}"
|
25
|
-
f.puts "index fg = #{nf.inspect}"
|
26
|
-
f.puts "index bg = #{nb.inspect}"
|
27
|
-
end
|
28
22
|
num = 8*nf + nb
|
29
23
|
X.init_pair(num, sym2const(fg), sym2const(bg))
|
30
24
|
num
|
@@ -32,17 +26,18 @@ class RubyText::Color
|
|
32
26
|
end
|
33
27
|
|
34
28
|
class RubyText::Window
|
35
|
-
def self.colorize!(
|
29
|
+
def self.colorize!(cwin, fg, bg)
|
36
30
|
File.open("/tmp/cize.out", "w") do |f|
|
37
31
|
f.puts "colorize: fg, bg = #{[fg, bg].inspect}"
|
38
32
|
end
|
39
33
|
cp = RubyText::Color.pair(fg, bg)
|
40
|
-
|
41
|
-
num =
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
34
|
+
cwin.color_set(cp)
|
35
|
+
num = cwin.maxx * cwin.maxy
|
36
|
+
cwin.setpos 0,0
|
37
|
+
cwin.addstr(' '*num)
|
38
|
+
cwin.setpos 0,0
|
39
|
+
cwin.refresh
|
40
|
+
debug "returning from colorize! call"
|
46
41
|
rescue => err
|
47
42
|
File.open("/tmp/#{__method__}.out", "w") do |f|
|
48
43
|
f.puts err
|
data/lib/effects.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
def fx(str, *args)
|
4
|
-
eff = RubyText::Effects.new(*args)
|
3
|
+
def fx(str, *args, bg: nil)
|
4
|
+
eff = RubyText::Effects.new(*args, bg: bg)
|
5
5
|
str.define_singleton_method(:effect) { eff }
|
6
6
|
str # must return str
|
7
7
|
end
|
@@ -14,9 +14,11 @@ class RubyText::Effects # dumb name?
|
|
14
14
|
|
15
15
|
Others = %[:show, :hide] # show/hide cursor; more later??
|
16
16
|
|
17
|
-
attr_reader :value, :fg
|
17
|
+
attr_reader :value, :fg, :bg
|
18
|
+
|
19
|
+
# TODO rewrite logic to accommodate color pairs
|
18
20
|
|
19
|
-
def initialize(*args)
|
21
|
+
def initialize(*args, bg: nil)
|
20
22
|
bits = 0
|
21
23
|
@list = args
|
22
24
|
args.each do |arg|
|
@@ -27,21 +29,23 @@ class RubyText::Effects # dumb name?
|
|
27
29
|
@fg = arg # symbol
|
28
30
|
end
|
29
31
|
end
|
32
|
+
@bg = bg || @bg
|
30
33
|
@value = bits
|
31
34
|
end
|
32
35
|
|
33
36
|
def set(win)
|
34
|
-
# Save off current state?
|
35
|
-
|
36
|
-
attr, fg = self.value, self.fg
|
37
|
+
@old_fg, @old_bg = win.fg, win.bg # Save off current state?
|
38
|
+
attr, fg, bg = self.value, self.fg, self.bg
|
37
39
|
win.cwin.attron(attr)
|
38
|
-
|
40
|
+
fg ||= win.fg
|
41
|
+
bg ||= win.bg
|
42
|
+
win.set_colors(fg, bg)
|
39
43
|
end
|
40
44
|
|
41
45
|
def reset(win)
|
42
46
|
attr = self.value
|
43
47
|
win.cwin.attroff(attr)
|
44
|
-
win.set_colors(@old_fg,
|
48
|
+
win.set_colors(@old_fg, @old_bg)
|
45
49
|
end
|
46
50
|
end
|
47
51
|
|
data/lib/menu.rb
CHANGED
@@ -1,23 +1,30 @@
|
|
1
1
|
module RubyText
|
2
2
|
|
3
3
|
def self.menu(win: STDSCR, r: 0, c: 0, items:, curr: 0,
|
4
|
-
fg: White, bg: Blue)
|
4
|
+
title: nil, fg: White, bg: Blue)
|
5
5
|
RubyText.hide_cursor
|
6
6
|
high = items.size + 2
|
7
7
|
wide = items.map(&:length).max + 4
|
8
|
+
tlen = title.length + 6
|
9
|
+
wide = [wide, tlen].max
|
8
10
|
win.saveback(high, wide, r, c)
|
9
|
-
|
11
|
+
mr, mc = r+win.r0+1, c+win.c0+1
|
12
|
+
mwin = RubyText.window(high, wide, r: mr, c: mc,
|
10
13
|
fg: fg, bg: bg)
|
14
|
+
win.go(mr-2, mc-win.c0) { win.print fx("[ #{title} ]", :bold, fg, bg: bg) } unless title.nil?
|
15
|
+
|
11
16
|
X.stdscr.keypad(true)
|
12
17
|
sel = curr
|
13
18
|
max = items.size - 1
|
14
19
|
norm = RubyText::Effects.new(:normal)
|
15
20
|
rev = RubyText::Effects.new(:reverse)
|
16
21
|
loop do
|
22
|
+
RubyText.hide_cursor # FIXME should be unnecessary
|
17
23
|
items.each.with_index do |item, row|
|
18
24
|
mwin.go row, 0
|
19
|
-
style = (sel == row) ?
|
20
|
-
|
25
|
+
style = (sel == row) ? :reverse : :normal
|
26
|
+
label = (" "*3 + item + " "*8)[0..wide-1]
|
27
|
+
mwin.print fx(label, style)
|
21
28
|
end
|
22
29
|
ch = getch
|
23
30
|
case ch
|
data/lib/version.rb
CHANGED
data/lib/window.rb
CHANGED
@@ -7,7 +7,8 @@ class RubyText::Window
|
|
7
7
|
|
8
8
|
# Better to use Window.window IRL
|
9
9
|
|
10
|
-
def initialize(high=nil, wide=nil, r0=1, c0=1, border=false,
|
10
|
+
def initialize(high=nil, wide=nil, r0=1, c0=1, border=false,
|
11
|
+
fg=White, bg=Blue, scroll=false)
|
11
12
|
@wide, @high, @r0, @c0 = wide, high, r0, c0
|
12
13
|
@border, @fg, @bg = border, fg, bg
|
13
14
|
@cwin = X::Window.new(high, wide, r0, c0)
|
@@ -29,12 +30,15 @@ class RubyText::Window
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def self.main(fg: White, bg: Blue, scroll: false)
|
33
|
+
debug "Starting #main..."
|
32
34
|
main_win = X.init_screen
|
33
35
|
X.start_color
|
34
36
|
self.colorize!(main_win, fg, bg)
|
35
37
|
rows, cols = main_win.maxy, main_win.maxx
|
36
|
-
self.make(main_win, rows, cols, 0, 0, border: false,
|
38
|
+
win = self.make(main_win, rows, cols, 0, 0, border: false,
|
37
39
|
fg: fg, bg: bg, scroll: scroll)
|
40
|
+
debug "...started #main"
|
41
|
+
win
|
38
42
|
rescue => err
|
39
43
|
File.open("/tmp/main.out", "w") {|f| f.puts err.inspect; f.puts err.backtrace }
|
40
44
|
end
|