rubytext 0.0.19 → 0.0.20

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.
Files changed (4) hide show
  1. checksums.yaml +5 -5
  2. data/lib/rubytext.rb +56 -34
  3. data/lib/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0ecdb93b304aab7078cc28528723533823a3ed30
4
- data.tar.gz: 038e5bf83d0f0061cce07944310f6b814e7b1905
2
+ SHA256:
3
+ metadata.gz: 01d2a45364981d0139df502a40e86e0b3cbd1186bae314e1f987dc704ba0c5cc
4
+ data.tar.gz: bab37c6c328abe1d33fd75c8a8f2c0e2a691a211f6f272d334802b5e4a219486
5
5
  SHA512:
6
- metadata.gz: 83d286e2e30f318357df6dc4083679df4d439e0fd4a95d04643cd896a83cc569c56e53ee577295985764cd9c9f0a4ee6d7ed5e01c8bf66478e90bcfc43601edb
7
- data.tar.gz: 3b59e05d9c04b167369cad55fc7cb6d295b9cb99eacd30e3a3f9f856a7ff26258b9666773b82191008ef919e2f665731b055acc99479918503709366f9b79f69
6
+ metadata.gz: 6cb6a7992dfc787cceffcef1036ec5678fddde72ea2ec22cbeef9e00e1fc01bb36ac9ae81c17102bb31ca948a5b7f0fe5d00e433dcf10faf9d18850c65d1160c
7
+ data.tar.gz: 39f142d6bc3136ff4bfefa80926753ffdec548a522b4a6d0ac363de83ca2417425ee53d7416e53a9ae3748b6247529acff52dc09663205b83dec74b3739026ee
data/lib/rubytext.rb CHANGED
@@ -11,17 +11,27 @@ def debug(*args)
11
11
  $debug.puts *args
12
12
  end
13
13
 
14
+ def fb2cp(fg, bg)
15
+ debug "Colors are: #{fg} on #{bg}"
16
+ fg = X.const_get("COLOR_#{fg.upcase}")
17
+ bg = X.const_get("COLOR_#{bg.upcase}")
18
+ debug "Curses colors are: #{fg} on #{bg}"
19
+ cp = $ColorPairs[[fg, bg]]
20
+ debug "cp is: #{cp}"
21
+ [fg, bg, cp]
22
+ end
23
+
14
24
  module RubyText
15
25
 
16
26
  Colors = %w[black blue cyan green magenta red white yellow]
17
- ColorPairs = {}
27
+ $ColorPairs = {}
18
28
  num = 0
19
29
  Colors.each do |fc|
20
30
  Colors.each do |bc|
21
31
  fg = X.const_get("COLOR_#{fc.upcase}")
22
32
  bg = X.const_get("COLOR_#{bc.upcase}")
23
33
  X.init_pair(num+=1, fg, bg) # FIXME backwards?
24
- ColorPairs[[fg, bg]] = num
34
+ $ColorPairs[[fg, bg]] = num
25
35
  end
26
36
  end
27
37
 
@@ -46,20 +56,22 @@ module RubyText
46
56
  end
47
57
 
48
58
  class Window
49
- def self.main
50
- debug "Entering Window.main"
59
+ def self.main(fg: nil, bg: nil)
60
+ debug "Entering Window.main (#{fg}, #{bg}) => "
61
+ fg, bg, cp = fb2cp(fg, bg)
62
+ debug " computed #{fg}, #{bg}, #{cp}"
63
+ debug " cp|A_NORMAL = #{cp|X::A_NORMAL}"
51
64
  @main_win = X.init_screen
52
65
  X.start_color
53
- # X.init_pair(1, X::COLOR_BLACK, X::COLOR_WHITE)
54
- # X.stdscr.bkgd(X.color_pair(1)|X::A_NORMAL)
66
+ X.stdscr.bkgd(cp|X::A_NORMAL)
55
67
  rows, cols = @main_win.maxy, @main_win.maxx
56
68
  debug "About to call .make"
57
- @screen = self.make(@main_win, rows, cols, 0, 0, false, "white", "black")
69
+ @screen = self.make(@main_win, rows, cols, 0, 0, false)
58
70
  @screen
59
71
  end
60
72
 
61
- def self.make(cwin, high, wide, r0, c0, border, fg, bg)
62
- debug "make: #{[cwin, high, wide, r0, c0, border, fg, bg]}"
73
+ def self.make(cwin, high, wide, r0, c0, border)
74
+ debug "make: #{[cwin, high, wide, r0, c0, border]}"
63
75
  obj = self.allocate
64
76
  debug "Allocate returned a #{obj.class}"
65
77
  obj.instance_eval do
@@ -77,42 +89,36 @@ end
77
89
 
78
90
  # debug "Setting STDSCR to Window.main"
79
91
 
80
- STDSCR = RubyText::Window.main
81
- $stdscr = STDSCR
92
+ # STDSCR = RubyText::Window.main
93
+ # $stdscr = STDSCR
82
94
 
83
- ###
84
-
85
- module RubyText
95
+ =begin
96
+ Logic flow -
97
+ main
98
+ initscreen
99
+ start_color
100
+ make
101
+ STDSCR = RubyText::Window.main
102
+ $stdscr = STDSCR
86
103
 
87
- # For passing through arbitrary method calls
88
- # to the lower level...
104
+ =end
89
105
 
90
- def self.method_missing(name, *args)
91
- debug "method_missing: #{name} #{args.inspect}"
92
- if name[0] == '_'
93
- X.send(name[1..-1], *args)
94
- else
95
- raise "#{name} #{args.inspect}" # NoMethodError
96
- end
97
- end
106
+ ###
98
107
 
99
- def RubyText.window(high, wide, r0, c0, border=false, fg="white", bg="black")
100
- RubyText::Window.new(high, wide, r0, c0, border, fg, bg)
101
- end
108
+ module RubyText
102
109
 
103
110
  def self.start(*args, log: nil, fg: nil, bg: nil)
104
111
  $debug = File.new(log, "w") if log
112
+ Object.const_set(:STDSCR, RubyText::Window.main(fg: fg, bg: bg))
113
+ $stdscr = STDSCR
114
+
105
115
  fg ||= :white
106
116
  bg ||= :black
107
117
  debug "fg = #{fg} is not a valid color" unless Colors.include?(fg.to_s)
108
118
  debug "bg = #{bg} is not a valid color" unless Colors.include?(bg.to_s)
109
- debug "Colors are: #{fg} on #{bg}"
110
- fg = X.const_get("COLOR_#{fg.upcase}")
111
- bg = X.const_get("COLOR_#{bg.upcase}")
112
- debug "Curses colors are: #{fg} on #{bg}"
113
- cp = ColorPairs[[fg, bg]]
114
- debug "cp is: #{cp}"
115
- X.stdscr.bkgd(cp|X::A_NORMAL)
119
+ fg, bg, cp = fb2cp(fg, bg)
120
+ # X.bkgd(cp|X::A_NORMAL)
121
+ # X.clear
116
122
  X.noecho
117
123
  X.stdscr.keypad(true)
118
124
  X.cbreak # by default
@@ -131,6 +137,22 @@ debug "cp is: #{cp}"
131
137
  end
132
138
  end
133
139
 
140
+ # For passing through arbitrary method calls
141
+ # to the lower level...
142
+
143
+ def self.method_missing(name, *args)
144
+ debug "method_missing: #{name} #{args.inspect}"
145
+ if name[0] == '_'
146
+ X.send(name[1..-1], *args)
147
+ else
148
+ raise "#{name} #{args.inspect}" # NoMethodError
149
+ end
150
+ end
151
+
152
+ def RubyText.window(high, wide, r0, c0, border=false, fg=nil, bg=nil)
153
+ RubyText::Window.new(high, wide, r0, c0, border, fg, bg)
154
+ end
155
+
134
156
  def self.hide_cursor
135
157
  X.curs_set(0)
136
158
  end
data/lib/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RubyText
3
- VERSION = "0.0.19"
3
+ VERSION = "0.0.20"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  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.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  version: '0'
55
55
  requirements: []
56
56
  rubyforge_project:
57
- rubygems_version: 2.2.2
57
+ rubygems_version: 2.7.7
58
58
  signing_key:
59
59
  specification_version: 4
60
60
  summary: A thick wrapper for Curses