rubytext 0.0.15 → 0.0.16

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 +31 -16
  3. data/lib/version.rb +2 -2
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fe02a727ad28e192c4578215c9135f418f1c0e88
4
- data.tar.gz: fa7091c1920092f1d449499ee1cf969977d2963a
2
+ SHA256:
3
+ metadata.gz: 4536ed9e2ce1dbd28d40a9e19adf2a5aa4a0e8c5bf6bc13666d3ea00708bece1
4
+ data.tar.gz: 996510b10225a5dd569ebcbb7f022308b10f4d8f050870b686bba5c30ecff64e
5
5
  SHA512:
6
- metadata.gz: 2ba3f8c5d824a60039d9d982dce8709f914ec47136fe2c38b449df58deec73c16777fee6a8a8143fb2d8e28003eb1bc7a191b369849ddc772873f6acc564c1be
7
- data.tar.gz: b7df132242683378422ec75c576cbf8e8fd2880fcac97496a2806770c5adcb8464b0426bddbaf535e82ade9ca0e6291a0dc72d9a1c6c6e9183a47695e142b042
6
+ metadata.gz: c97fef25f08072ea4eeb038e749e825bff73b50db6e904bffb5b838b62840bcd7913be177726c2ae29059a589d4a73d65f571ef9b80da0d9ed8f6967c79a07da
7
+ data.tar.gz: 55fb8641d81332daccfbdc484ffa9e328593d84a0b36ee9c9da72004ae56055ca2508ce06df711725c1bf0f0c54048a2c3e566f84f7fcc5a5d2e3807acf97328
data/lib/rubytext.rb CHANGED
@@ -13,6 +13,18 @@ end
13
13
 
14
14
  module RubyText
15
15
 
16
+ Colors = %w[black blue cyan green magenta red white yellow]
17
+ ColorPairs = {}
18
+ num = 0
19
+ Colors.each do |fc|
20
+ Colors.each do |bc|
21
+ fg = X.const_get("COLOR_#{fc.upcase}")
22
+ bg = X.const_get("COLOR_#{bc.upcase}")
23
+ pair = X.init_pair(num+=1, fg, bg) # FIXME backwards?
24
+ ColorPairs[[fg, bg]] = pair
25
+ end
26
+ end
27
+
16
28
  module Keys
17
29
  Down = 258
18
30
  Up = 259
@@ -33,9 +45,6 @@ module RubyText
33
45
  F12 = 276
34
46
  end
35
47
 
36
- Colors = %w[black blue cyan green
37
- magenta red white yellow]
38
-
39
48
  class Window
40
49
  def self.main
41
50
  debug "Entering Window.main"
@@ -45,12 +54,12 @@ module RubyText
45
54
  X.stdscr.bkgd(X.color_pair(1)|X::A_NORMAL)
46
55
  rows, cols = @main_win.maxy, @main_win.maxx
47
56
  debug "About to call .make"
48
- @screen = self.make(@main_win, rows, cols, 0, 0, false)
57
+ @screen = self.make(@main_win, rows, cols, 0, 0, false, "white", "black")
49
58
  @screen
50
59
  end
51
60
 
52
- def self.make(cwin, high, wide, r0, c0, border)
53
- debug "make: #{[cwin, high, wide, r0, c0, border]}"
61
+ def self.make(cwin, high, wide, r0, c0, border, fg, bg)
62
+ debug "make: #{[cwin, high, wide, r0, c0, border, fg, bg]}"
54
63
  obj = self.allocate
55
64
  debug "Allocate returned a #{obj.class}"
56
65
  obj.instance_eval do
@@ -87,8 +96,8 @@ module RubyText
87
96
  end
88
97
  end
89
98
 
90
- def RubyText.window(high, wide, r0, c0, border=false)
91
- RubyText::Window.new(high, wide, r0, c0, border)
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)
92
101
  end
93
102
 
94
103
  def self.start(*args, log: nil, fg: nil, bg: nil)
@@ -136,21 +145,22 @@ end
136
145
  class RubyText::Window
137
146
  Vert, Horiz = X::A_VERTICAL, X::A_HORIZONTAL # ?|, ?- # "\u2502", "\u2500"
138
147
 
139
- attr_reader :win, :rows, :cols, :width, :height
148
+ attr_reader :win, :rows, :cols, :width, :height, :fg, :bg
140
149
 
141
- def initialize(high=nil, wide=nil, r0=1, c0=1, border=false)
150
+ def initialize(high=nil, wide=nil, r0=1, c0=1, border=false, fg=:white, bg=:black)
142
151
  debug "RT::Win.init: #{[high, wide, r0, c0, border]}"
143
152
  @wide, @high, @r0, @c0 = wide, high, r0, c0
144
153
  @border = border
154
+ @fg, @bg = fg, bg
145
155
  @win = X::Window.new(high, wide, r0, c0)
146
- debug "outer = #{@win.inspect}"
147
- debug "@border = #@border"
156
+ debug "outer = #{@win.inspect}"
157
+ debug "@border = #@border"
148
158
  if @border
149
159
  @win.box(Vert, Horiz)
150
160
  @outer = @win
151
161
  @outer.refresh
152
- debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
153
- @win = X::Window.new(high-2, wide-2, r0+1, c0+1) # relative now??
162
+ debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
163
+ @win = X::Window.new(high-2, wide-2, r0+1, c0+1, false, fg, bg) # relative now??
154
164
  else
155
165
  @outer = @win
156
166
  end
@@ -162,9 +172,14 @@ debug "About to call again: params = #{[high-2, wide-2, r0+1, c0+1]}"
162
172
  def delegate_output(sym, *args)
163
173
  args = [""] if args.empty?
164
174
  debug "#{sym}: args = #{args.inspect}"
165
- args.map!(&:inspect) if sym == :p
175
+ if sym == :p
176
+ args.map!(&:inspect)
177
+ else
178
+ args.map!(&:to_s)
179
+ end
166
180
  str = sprintf(*args)
167
181
  str << "\n" if sym != :print && str[-1] != "\n"
182
+ # color-handling code here
168
183
  @win.addstr(str)
169
184
  @win.refresh
170
185
  end
@@ -243,7 +258,7 @@ end
243
258
  ### Stick stuff into Kernel for top level
244
259
 
245
260
  module Kernel
246
- private
261
+ # private
247
262
  def puts(*args) # Doesn't affect STDOUT.puts, etc.
248
263
  $stdscr.puts(*args)
249
264
  end
data/lib/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
- class RubyText
3
- VERSION = "0.0.15"
2
+ module RubyText
3
+ VERSION = "0.0.16"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubytext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-05 00:00:00.000000000 Z
11
+ date: 2018-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -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