rubytext 0.0.76 → 0.0.77

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57dc0a7d99cad64dde62865a3bd48f8e5cd49644390f9089371fe121a742e6b4
4
- data.tar.gz: 4e89cb5f8394f4ac36a2e7599720b9a03111f1de4b428545e245c457b0bf7ca3
3
+ metadata.gz: ee7c6312edf48700460e3ac66588a92de3809dddb2eeef6fe33a4174e355ef81
4
+ data.tar.gz: ada7f3ee8c716f7be23affaa9ef790f51df1acfb0f11be30c876e8e6d18f4fa4
5
5
  SHA512:
6
- metadata.gz: 125ff3fe92c91935c218f80da9980242725fd6c47949e394d4b35dfc34b252c378193861041e02275cc8f9b934d6f85ca392209cd50b0a5bff18b90b149a8c41
7
- data.tar.gz: bf92b9b47a490046e7ebc35d77d9d7bbe7e664034dae83e06b9eb97990c4db5027aa430b9d4c48b6185360904fff66167c6be329d5003761a21b7b63bf24a095
6
+ metadata.gz: 551a09d2ddf6a41f90e7e6c85ac3a4738d597dbe2ee6e55970a1268a4e2f0a4c7881196e92f4614da8ca4feb016fc67101114cd769bb06b5b7e8b327646d0d42
7
+ data.tar.gz: e5ab24e1cd086a8a43534f37af73146ed6dad0fec0beab3333b7d6d5d87d220fe127c1c1d45073c3b5817fa8069990241ed1daedd11f4fe4c0441c6aa1c0e5e9
data/lib/navigation.rb CHANGED
@@ -1,5 +1,31 @@
1
1
  class RubyText::Window
2
+
3
+ def coords(r, c)
4
+ r = case
5
+ when r == :center
6
+ self.rows / 2
7
+ when r == :top
8
+ 0
9
+ when r == :bottom
10
+ self.rows - 1
11
+ else
12
+ r
13
+ end
14
+ c = case
15
+ when c == :center
16
+ self.cols / 2
17
+ when c == :left
18
+ 0
19
+ when c == :right
20
+ self.cols - 1
21
+ else
22
+ c
23
+ end
24
+ [r, c]
25
+ end
26
+
2
27
  def go(r, c)
28
+ r, c = coords(r, c)
3
29
  save = self.rc
4
30
  @cwin.setpos(r, c)
5
31
  if block_given?
data/lib/output.rb CHANGED
@@ -59,7 +59,7 @@ class RubyText::Window
59
59
  end
60
60
 
61
61
  def rcprint!(r, c, *args)
62
- @cwin.setpos(r, c) # Cursor isn't restored
62
+ self.go(r, c) # Cursor isn't restored
63
63
  self.print *args
64
64
  end
65
65
 
@@ -71,10 +71,8 @@ class RubyText::Window
71
71
  fx.set(self) if fx
72
72
  val = fx.value rescue 0
73
73
  @cwin.addch(ch.ord|val)
74
- # @win.refresh
75
74
  end
76
75
  fx.reset(self) if fx
77
- # self[r, c] = ch[0]
78
76
  end
79
77
 
80
78
  def crlf # Technically not output...
@@ -144,21 +142,27 @@ end
144
142
 
145
143
  module WindowIO
146
144
  def puts(*args) # Doesn't affect STDOUT.puts, etc.
147
- $stdscr.puts(*args)
145
+ recv = RubyText.started ? $stdscr : Kernel
146
+ recv.puts(*args)
148
147
  end
149
148
 
150
149
  def print(*args)
151
- $stdscr.print(*args)
150
+ recv = RubyText.started ? $stdscr : Kernel
151
+ recv.print(*args)
152
152
  end
153
153
 
154
154
  def p(*args)
155
- $stdscr.p(*args)
155
+ recv = RubyText.started ? $stdscr : Kernel
156
+ recv.p(*args)
156
157
  end
157
158
 
158
159
  def rcprint(r, c, *args)
159
- $stdscr.rcprint r, c, *args
160
+ recv = RubyText.started ? $stdscr : Kernel
161
+ recv.rcprint r, c, *args
160
162
  end
161
163
 
164
+ # FIXME These don't/can't honor @started flag...
165
+
162
166
  def getch
163
167
  X.getch
164
168
  end
@@ -177,7 +181,7 @@ module WindowIO
177
181
  end
178
182
 
179
183
  def putch(ch, r: nil, c: nil, fx: nil)
180
- $stdscr.putch(ch, r: r, c: c, fx: fx)
184
+ STDSCR.putch(ch, r: r, c: c, fx: fx)
181
185
  end
182
186
  end
183
187
 
data/lib/settings.rb CHANGED
@@ -3,6 +3,10 @@ module RubyText
3
3
 
4
4
  ValidArgs = [:raw, :_raw, :echo, :_echo, :cbreak, :_cbreak]
5
5
 
6
+ def self.started
7
+ @started
8
+ end
9
+
6
10
  def self.start(*args, log: "/tmp/rubytext.log",
7
11
  fg: White, bg: Blue, scroll: false)
8
12
  $debug ||= File.new(log, "w") if log # FIXME remove global
@@ -17,6 +21,7 @@ module RubyText
17
21
  Object.include(WindowIO)
18
22
  self.set(:_echo, :cbreak) # defaults (:keypad?)
19
23
  self.set(*args) # override defaults
24
+ @started = true
20
25
  rescue => err
21
26
  debug(err.inspect)
22
27
  debug(err.backtrace)
@@ -93,6 +98,7 @@ module RubyText
93
98
  end
94
99
 
95
100
  def self.stop
101
+ @started = false
96
102
  X.close_screen
97
103
  end
98
104
 
data/lib/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  module RubyText
3
- VERSION = "0.0.76"
3
+ VERSION = "0.0.77"
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.76
4
+ version: 0.0.77
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-12-07 00:00:00.000000000 Z
11
+ date: 2018-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
- rubygems_version: 2.7.8
105
+ rubygems_version: 2.7.7
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: A thick wrapper for Curses