rubytext 0.0.49 → 0.0.50

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 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