rubytext 0.0.19 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
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