rubytext 0.0.49 → 0.0.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/prog05.rb +2 -2
- data/examples/prog22.rb +20 -0
- data/examples/showme.rb +7 -6
- data/examples/slides +3 -2
- data/lib/rubytext.rb +1 -0
- data/lib/settings.rb +1 -3
- data/lib/version.rb +1 -1
- data/lib/widgets.rb +15 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8cfdb9f0b2c19b4237b6291e6ceadbb177bfd6ff2d75a235bf52d2c1268154d3
|
4
|
+
data.tar.gz: a783b6ac52d6d993c06f1de16502effb9d20cb57b84c849ae4b243a23120b0c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c649721a5e709a72545c1b6aa84ee3b0f7861d6b0ff58134d2f5c9de240d6e62fb025f931ea98db765e8576537127326c1c2a6e2c55260c20bea7bf0ee75ec5d
|
7
|
+
data.tar.gz: 409a480474fa35fb0753bca7c794ed781ef8bce1fcb4f2af2700709aa267177bbd429603f9d18a30c20d06003bfe2eaa9ae70ae0f62741eec10470aa9f0832b2
|
data/examples/prog05.rb
CHANGED
@@ -3,10 +3,10 @@ win = RubyText.window(10, 70, 2, 14, true, fg: :yellow, bg: :black)
|
|
3
3
|
win.output do
|
4
4
|
puts "Without scrolling, this is what happens when your window fills up..."
|
5
5
|
puts "This behavior will probably change later."
|
6
|
-
sleep
|
6
|
+
sleep 1
|
7
7
|
puts "Let's print 10 more lines now:"
|
8
8
|
sleep 1
|
9
9
|
|
10
|
-
10.times {|i| puts "Printing line #{i}..."; sleep 0.
|
10
|
+
10.times {|i| puts "Printing line #{i}..."; sleep 0.2 }
|
11
11
|
end
|
12
12
|
|
data/examples/prog22.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
msg = <<~EOS
|
2
|
+
A "ticker" example that actually uses threads. Maybe Curses is not as slow as
|
3
|
+
you thought? PRESS ANY KEY TO EXIT...
|
4
|
+
EOS
|
5
|
+
|
6
|
+
w, h = STDSCR.cols, STDSCR.rows - 1
|
7
|
+
threads = []
|
8
|
+
|
9
|
+
r = RubyText
|
10
|
+
t1 = -> { r.ticker(text: msg, row: h-8, col: 20, width: w-40, delay: 0.02, fg: :red, bg: :black) }
|
11
|
+
t2 = -> { r.ticker(text: msg, row: h-6, col: 15, width: w-30, delay: 0.04) }
|
12
|
+
t3 = -> { r.ticker(text: msg, row: h-4, col: 10, width: w-20, delay: 0.06, fg: :black, bg: :green) }
|
13
|
+
t4 = -> { r.ticker(text: msg, row: h-2, col: 5, width: w-10, delay: 0.08, bg: :black) }
|
14
|
+
t5 = -> { r.ticker(text: msg) } # All defaults -- goes at bottom
|
15
|
+
|
16
|
+
threads << Thread.new { t1.call } << Thread.new { t2.call } << Thread.new { t3.call } <<
|
17
|
+
Thread.new { t4.call } << Thread.new { t5.call }
|
18
|
+
|
19
|
+
threads << Thread.new { getch; exit } # quitter thread...
|
20
|
+
threads.each {|t| t.join }
|
data/examples/showme.rb
CHANGED
@@ -5,18 +5,18 @@ def next_slide
|
|
5
5
|
RubyText.hide_cursor
|
6
6
|
sleep 2
|
7
7
|
Timeout.timeout(999) do
|
8
|
-
STDSCR.go @rmax-1, 0
|
8
|
+
STDSCR.go @rmax-1-@upward, 0
|
9
9
|
STDSCR.center "Press any key..."
|
10
10
|
getch
|
11
11
|
end
|
12
12
|
rescue Timeout::Error
|
13
13
|
end
|
14
14
|
|
15
|
-
def show_code(prog)
|
15
|
+
def show_code(prog, upward=0)
|
16
16
|
text = File.read(prog)
|
17
17
|
nlines = text.split("\n").size
|
18
18
|
|
19
|
-
prog_top = @rmax-nlines-3
|
19
|
+
prog_top = @rmax-nlines-3 - upward.to_i
|
20
20
|
code = RubyText.window(nlines+2, @cmax-2, prog_top, 1,
|
21
21
|
true, fg: :green, bg: :black)
|
22
22
|
code.puts text
|
@@ -48,10 +48,11 @@ RubyText.hide_cursor
|
|
48
48
|
|
49
49
|
check_window
|
50
50
|
|
51
|
-
prog = ARGV
|
51
|
+
prog, @upward = ARGV
|
52
|
+
@upward ||= 0
|
52
53
|
|
53
|
-
show_code(prog)
|
54
|
+
show_code(prog, @upward)
|
54
55
|
|
55
56
|
require_relative prog
|
56
57
|
|
57
|
-
next_slide
|
58
|
+
next_slide # if @upward == 0
|
data/examples/slides
CHANGED
@@ -12,10 +12,11 @@ exit unless rc
|
|
12
12
|
# - use names instead of numbers?
|
13
13
|
# - convert showme into a method?
|
14
14
|
|
15
|
-
1.upto(
|
15
|
+
1.upto(22) do |n|
|
16
16
|
next if n == 11 # junk this one
|
17
17
|
num = '%02d' % n
|
18
18
|
prog = "prog#{num}.rb"
|
19
|
-
|
19
|
+
upward = 15 if n == 22 # dumbest hack ever!
|
20
|
+
system("ruby showme.rb #{prog} #{upward}")
|
20
21
|
end
|
21
22
|
|
data/lib/rubytext.rb
CHANGED
data/lib/settings.rb
CHANGED
@@ -21,11 +21,9 @@ module RubyText
|
|
21
21
|
@flags = @defaults.dup
|
22
22
|
save_flags
|
23
23
|
args.each do |arg|
|
24
|
-
puts "\n@flags = #{@flags.inspect}... add #{arg}, remove #{inverse_flag(arg)}"
|
25
24
|
@flags += [arg]
|
26
25
|
@flags -= [inverse_flag(arg)]
|
27
26
|
@flags.uniq!
|
28
|
-
puts "@flags = #{@flags.inspect}"
|
29
27
|
flag = arg.to_s
|
30
28
|
if standard.include? flag.to_sym
|
31
29
|
X.send(flag)
|
@@ -111,7 +109,7 @@ puts "@flags = #{@flags.inspect}"
|
|
111
109
|
end
|
112
110
|
|
113
111
|
def self.show_cursor!
|
114
|
-
X.curs_set(2) # Doesn't work?
|
112
|
+
X.curs_set(2) # Doesn't work? Device-dependent?
|
115
113
|
end
|
116
114
|
end
|
117
115
|
|
data/lib/version.rb
CHANGED
data/lib/widgets.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module RubyText
|
2
|
+
def self.ticker(row: STDSCR.rows-1, col: 0, width: STDSCR.cols,
|
3
|
+
fg: :white, bg: :blue, text:, delay: 0.1)
|
4
|
+
text = text.gsub("\n", " ") + " "
|
5
|
+
win = RubyText.window(1, width, row, col, false, fg: fg, bg: bg)
|
6
|
+
leader = " "*width + text
|
7
|
+
leader = text.chars.cycle.each_cons(width)
|
8
|
+
width.times { win.rcprint 0, 0, leader.next.join }
|
9
|
+
repeat = text.chars.cycle.each_cons(width)
|
10
|
+
loop do # Warning: loops forever
|
11
|
+
win.rcprint 0, 0, repeat.next.join
|
12
|
+
sleep delay
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
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.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- examples/prog19.rb
|
66
66
|
- examples/prog20.rb
|
67
67
|
- examples/prog21.rb
|
68
|
+
- examples/prog22.rb
|
68
69
|
- examples/showme.rb
|
69
70
|
- examples/slides
|
70
71
|
- lib/color.rb
|
@@ -76,6 +77,7 @@ files:
|
|
76
77
|
- lib/rubytext.rb
|
77
78
|
- lib/settings.rb
|
78
79
|
- lib/version.rb
|
80
|
+
- lib/widgets.rb
|
79
81
|
- lib/window.rb
|
80
82
|
- test/auto.rb
|
81
83
|
homepage: https://github.com/Hal9000/rubytext
|