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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12a03087a2f64e8ec6811c4a2c1506391892847d6daaba163eb9a2fd9b24dcaa
4
- data.tar.gz: 8fadb7e1c3fef28196c2c5b80b17779d78208ae86801981554d421e710846533
3
+ metadata.gz: 8cfdb9f0b2c19b4237b6291e6ceadbb177bfd6ff2d75a235bf52d2c1268154d3
4
+ data.tar.gz: a783b6ac52d6d993c06f1de16502effb9d20cb57b84c849ae4b243a23120b0c2
5
5
  SHA512:
6
- metadata.gz: 9a84d72ecb9245757b9b1e7640d6e7387ca0c2a62c84eadea1a25fc9ddaf1e9c8d4cb985636a5f010205212c7515a22557f5c09bae57c8d2dad95d5fd2899a30
7
- data.tar.gz: 75c04b270130c8e21ca490849134e55203f7ba29e2140348ec8545f4a1a08fa850a25a229289fd01afcfe4688c98863bf3e4917b3fbd47d5cab42e0af876fb9c
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 2
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.3 }
10
+ 10.times {|i| puts "Printing line #{i}..."; sleep 0.2 }
11
11
  end
12
12
 
@@ -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.first
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(21) do |n|
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
- system("ruby showme.rb #{prog}")
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
@@ -16,6 +16,7 @@ require 'color' # RubyText, RubyText::Window
16
16
  require 'effects'
17
17
  require 'navigation' # RubyText::Window
18
18
  require 'settings' # RubyText
19
+ require 'widgets'
19
20
 
20
21
 
21
22
  # Skeleton... Can't put at top because of #initalize
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
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RubyText
3
- VERSION = "0.0.49"
3
+ VERSION = "0.0.50"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  end
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.49
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