rubytext 0.1.10 → 0.1.11
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 +4 -4
- data/lib/rubytext_version.rb +1 -1
- data/lib/settings.rb +121 -59
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef493cd27a795e722bc61332718af2332c38f6530e74ee3b00289e2507f2ddc6
|
4
|
+
data.tar.gz: e88ba1983fea2d0b1aa5b88f57197a50d571fd55ab35bf8556f53da532b2b8fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72f0c62756d9cbf4f19c75319be3707f7337010d73dbee57cdcd73bc099ee15c5ee918116d3cc3014c92ebdbc72ddad121f629712c3eadc790c16051f9271a22
|
7
|
+
data.tar.gz: 1279205bdddfbff8a017a1e6b07dc82631738ac6dae99a607b146784aecfc67834af5bddc2e6a4d3a3e1ef7119ad193b2d549aa97e8c31bbf69d0785d8ef3b83
|
data/lib/rubytext_version.rb
CHANGED
data/lib/settings.rb
CHANGED
@@ -4,7 +4,67 @@ module RubyText
|
|
4
4
|
ValidArgs = [:raw, :_raw, :echo, :_echo, :cbreak, :_cbreak,
|
5
5
|
:keypad, :_keypad, :cursor, :_cursor]
|
6
6
|
|
7
|
-
|
7
|
+
|
8
|
+
class Settings
|
9
|
+
# raw echo cbreak keypad cursor
|
10
|
+
def initialize
|
11
|
+
@defaults = {raw: false, echo: false, cbreak: true, keypad: true, cursor: true}
|
12
|
+
@current = @defaults.dup
|
13
|
+
@stack = []
|
14
|
+
@stack.push @current # Note: Never let stack be empty
|
15
|
+
set_curses(@current) # Set them for real
|
16
|
+
# FIXME To be continued...
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_curses(**hash)
|
20
|
+
# Later: check for bad keys
|
21
|
+
hash.each_pair do |sym, val|
|
22
|
+
case [sym, val]
|
23
|
+
when [:cbreak, true]; Curses.cbreak
|
24
|
+
when [:cbreak, false]; Curses.nocbreak
|
25
|
+
when [:raw, true]; Curses.raw
|
26
|
+
when [:raw, false]; Curses.noraw
|
27
|
+
when [:echo, true]; Curses.echo
|
28
|
+
when [:echo, false]; Curses.noecho
|
29
|
+
when [:keypad, true]; STDSCR.cwin.keypad(true)
|
30
|
+
when [:keypad, false]; STDSCR.cwin.keypad(false)
|
31
|
+
when [:cursor, true]; Curses.curs_set(1)
|
32
|
+
when [:cursor, false]; Curses.curs_set(0)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def set_boolean(raw: nil, echo: nil, cbreak: nil, keypad: nil, cursor: nil)
|
38
|
+
raw ||= @current[:raw]
|
39
|
+
echo ||= @current[:echo]
|
40
|
+
cbreak ||= @current[:cbreak]
|
41
|
+
keypad ||= @current[:keypad]
|
42
|
+
cursor ||= @current[:cursor]
|
43
|
+
@stack.push @current
|
44
|
+
@current = {raw: raw, echo: echo, cbreak: cbreak, keypad: keypad, cursor: cursor}
|
45
|
+
set_curses(@current)
|
46
|
+
end
|
47
|
+
|
48
|
+
def reset_boolean
|
49
|
+
@current = @stack.pop rescue @stack[0]
|
50
|
+
set_curses(@current)
|
51
|
+
end
|
52
|
+
|
53
|
+
def set(syms)
|
54
|
+
# FIXME - call set_boolean
|
55
|
+
# allow a block here?
|
56
|
+
end
|
57
|
+
|
58
|
+
def reset
|
59
|
+
# FIXME - call reset_boolean
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.started # remove later
|
64
|
+
@started
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.started?
|
8
68
|
@started
|
9
69
|
end
|
10
70
|
|
@@ -46,74 +106,76 @@ module RubyText
|
|
46
106
|
@flags
|
47
107
|
end
|
48
108
|
|
49
|
-
# FIXME Refactor the Hal out of this
|
109
|
+
# FIXME Refactor the Hal out of this...
|
50
110
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
111
|
+
def self.inverse_flag(flag)
|
112
|
+
sflag = flag.to_s
|
113
|
+
if sflag[0] == "_"
|
114
|
+
sflag[1..-1].to_sym
|
115
|
+
else
|
116
|
+
("_" + sflag).to_sym
|
117
|
+
end
|
57
118
|
end
|
58
|
-
end
|
59
119
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
120
|
+
def self.set(*args) # Allow a block?
|
121
|
+
standard = [:cbreak, :raw, :echo]
|
122
|
+
@defaults = [:cbreak, :_echo, :keypad]
|
123
|
+
@flags = @defaults.dup
|
124
|
+
save_flags
|
125
|
+
args.each do |arg|
|
126
|
+
@flags += [arg]
|
127
|
+
inv = inverse_flag(arg)
|
128
|
+
@flags -= [inv]
|
129
|
+
@flags.uniq!
|
130
|
+
flag = arg.to_s
|
131
|
+
if standard.include?(flag.to_sym) || standard.include?(flag.sub(/no/, "_").to_sym)
|
132
|
+
Curses.send(flag)
|
133
|
+
elsif flag[0] == "_" && standard.include?(flag[1..-1].to_sym)
|
134
|
+
flag.sub!(/^_/, "no")
|
135
|
+
Curses.send(flag)
|
136
|
+
else
|
137
|
+
case flag.to_sym
|
138
|
+
when :cursor
|
139
|
+
Curses.curs_set(1)
|
140
|
+
when :_cursor, :nocursor
|
141
|
+
Curses.curs_set(0)
|
142
|
+
when :keypad
|
143
|
+
STDSCR.cwin.keypad(true)
|
144
|
+
when :_keypad
|
145
|
+
STDSCR.cwin.keypad(false)
|
146
|
+
else
|
147
|
+
# self.stop
|
148
|
+
rest_flags # prevent propagating error in test
|
149
|
+
raise RTError("flag = #{flag.inspect}")
|
150
|
+
end
|
90
151
|
end
|
91
152
|
end
|
153
|
+
|
154
|
+
if block_given?
|
155
|
+
yield
|
156
|
+
rest_flags
|
157
|
+
end
|
92
158
|
end
|
93
159
|
|
94
|
-
|
95
|
-
yield
|
160
|
+
def self.reset
|
96
161
|
rest_flags
|
97
162
|
end
|
98
|
-
end
|
99
163
|
|
100
|
-
|
101
|
-
|
102
|
-
|
164
|
+
def self.save_flags
|
165
|
+
@fstack ||= []
|
166
|
+
@flags.uniq!
|
167
|
+
@fstack.push @flags
|
168
|
+
end
|
103
169
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
170
|
+
def self.rest_flags
|
171
|
+
@flags = @fstack.pop
|
172
|
+
@flags.uniq!
|
173
|
+
self.set(*@flags)
|
174
|
+
rescue
|
175
|
+
@flags = @defaults
|
176
|
+
end
|
109
177
|
|
110
|
-
|
111
|
-
@flags = @fstack.pop
|
112
|
-
@flags.uniq!
|
113
|
-
self.set(*@flags)
|
114
|
-
rescue
|
115
|
-
@flags = @defaults
|
116
|
-
end
|
178
|
+
# ... end of ugly settings weirdness
|
117
179
|
|
118
180
|
def self.stop
|
119
181
|
@started = false
|
@@ -132,11 +194,11 @@ module RubyText
|
|
132
194
|
end
|
133
195
|
end
|
134
196
|
|
135
|
-
def self.hide_cursor
|
197
|
+
def self.hide_cursor # remove later?
|
136
198
|
Curses.curs_set(0)
|
137
199
|
end
|
138
200
|
|
139
|
-
def self.show_cursor
|
201
|
+
def self.show_cursor # remove later?
|
140
202
|
Curses.curs_set(1)
|
141
203
|
end
|
142
204
|
|
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.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|