rubytext 0.0.15 → 0.0.16

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