rubytext 0.0.86 → 0.0.87

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