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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 509abba3e565dfda3ccafe187272e258ea616dcd186204af9c21d16c73de073e
4
- data.tar.gz: f83e12a5b937c539f3d7309dc458d9cb26a458636fb4ccc8185efd3efdc6d0e2
3
+ metadata.gz: 2a39b4c532ccbd898dc02313b42d209f287066dedd723ac626bdbce565d33ed1
4
+ data.tar.gz: b0e729eb203af8688c493464bd4f5e0b029a2951e8a70964bb878f99c02c792b
5
5
  SHA512:
6
- metadata.gz: 6a88aea30b62d78cbb0700a5b3de6e97eab64be9f348ccf7d73c27ce2dd0b556176179c9f4b34cae405e22671edb16c1878ec294fae55dd22c9e4c7c079b36e4
7
- data.tar.gz: db33b6f9333edd165c16ec37f42224886f40b9dafc5f70d0788c9738ef9b6c66a2501793a66765168596289e000bac579866e9548292f86e9eaf33ee6cbb9b8b
6
+ metadata.gz: f79b5eba776e61bc8ab656c951e01409e25047298eff671ea197d9f1bde14aec83067042c685780154e66db0fa34ffcee36917bd89c6863b675656d111cd2d03
7
+ data.tar.gz: 1b8638507d0ba10d4807bd2c7a9724e2a222ca1c22e40de3312c4be3935fd0dd2c013c9d2a64c1dcdede16585a1f35de65adca057d49c10589ec83a76e295685
data/examples/prog21.rb CHANGED
@@ -7,7 +7,7 @@ win.puts
7
7
  getch
8
8
 
9
9
  days = %w[Monday Tuesday Wednesday Thursday Friday]
10
- num, day = RubyText.menu(win: win, r: 1, c: 5, items: days)
10
+ num, day = RubyText.menu(win: win, r: 1, c: 5, title: "Which day?", items: days)
11
11
 
12
12
  puts
13
13
  if day.nil?
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
- sleep 2
7
- Timeout.timeout(999) do
8
- STDSCR.go @rmax-1-@upward, 0
9
- STDSCR.center "Press any key..."
10
- getch
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!(win, fg, bg)
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
- win.color_set(cp)
41
- num = win.maxx * win.maxy
42
- win.setpos 0,0
43
- win.addstr(' '*num)
44
- win.setpos 0,0
45
- win.refresh
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
- @old_fg = win.fg
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
- win.set_colors(fg, win.bg) if fg
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, win.bg) if 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
- mwin = RubyText.window(high, wide, r: r+win.r0+1, c: c+win.c0+1,
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) ? rev : norm
20
- mwin.print style, " #{item} "
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
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RubyText
3
- VERSION = "0.0.86"
3
+ VERSION = "0.0.87"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  end
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, fg=White, bg=Blue, scroll=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
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.86
4
+ version: 0.0.87
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton