vedeu 0.4.62 → 0.4.63
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vedeu/all.rb +6 -5
- data/lib/vedeu/api.rb +5 -128
- data/lib/vedeu/application/application_controller.rb +0 -2
- data/lib/vedeu/application/application_helper.rb +0 -2
- data/lib/vedeu/application/application_view.rb +0 -2
- data/lib/vedeu/application/controller.rb +1 -1
- data/lib/vedeu/bindings/application.rb +12 -4
- data/lib/vedeu/bindings/system.rb +4 -4
- data/lib/vedeu/bindings/visibility.rb +6 -2
- data/lib/vedeu/buffers/buffer.rb +1 -1
- data/lib/vedeu/buffers/display_buffer.rb +2 -2
- data/lib/vedeu/cli/generator/templates/application/Gemfile +1 -1
- data/lib/vedeu/cli/generator/templates/application/application.erb +1 -1
- data/lib/vedeu/cli/generator/templates/application/config/configuration.erb +2 -2
- data/lib/vedeu/cli/generator/view.rb +2 -2
- data/lib/vedeu/colours/colour.rb +1 -1
- data/lib/vedeu/colours/colour_translator.rb +2 -2
- data/lib/vedeu/configuration/api.rb +1 -1
- data/lib/vedeu/configuration/configuration.rb +1 -1
- data/lib/vedeu/cursor/refresh_cursor.rb +1 -1
- data/lib/vedeu/distributed/server.rb +1 -1
- data/lib/vedeu/dsl/border.rb +1 -1
- data/lib/vedeu/dsl/geometry.rb +7 -6
- data/lib/vedeu/dsl/view.rb +3 -3
- data/lib/vedeu/events/event.rb +1 -1
- data/lib/vedeu/events/trigger.rb +1 -1
- data/lib/vedeu/exceptions.rb +14 -0
- data/lib/vedeu/geometry/dimension.rb +1 -1
- data/lib/vedeu/geometry/geometry.rb +2 -2
- data/lib/vedeu/geometry/position_validator.rb +1 -1
- data/lib/vedeu/input/input.rb +6 -5
- data/lib/vedeu/input/keymap.rb +3 -3
- data/lib/vedeu/input/mapper.rb +3 -3
- data/lib/vedeu/internal_api.rb +147 -0
- data/lib/vedeu/models/char.rb +2 -2
- data/lib/vedeu/models/focus.rb +1 -1
- data/lib/vedeu/models/line.rb +1 -1
- data/lib/vedeu/models/stream.rb +1 -1
- data/lib/vedeu/output/esc.rb +1 -1
- data/lib/vedeu/output/presentation.rb +9 -9
- data/lib/vedeu/output/refresh.rb +1 -1
- data/lib/vedeu/output/renderers.rb +1 -1
- data/lib/vedeu/output/text.rb +1 -1
- data/lib/vedeu/output/viewport.rb +1 -1
- data/lib/vedeu/repositories.rb +1 -1
- data/lib/vedeu/repositories/repository.rb +4 -4
- data/lib/vedeu/{application.rb → runtime/application.rb} +0 -0
- data/lib/vedeu/{bootstrap.rb → runtime/bootstrap.rb} +0 -0
- data/lib/vedeu/{launcher.rb → runtime/launcher.rb} +1 -1
- data/lib/vedeu/{main_loop.rb → runtime/main_loop.rb} +1 -1
- data/lib/vedeu/{router.rb → runtime/router.rb} +57 -4
- data/lib/vedeu/terminal.rb +1 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/api_test.rb +1 -15
- data/test/lib/vedeu/bindings/application_test.rb +3 -3
- data/test/lib/vedeu/internal_api_test.rb +25 -0
- data/test/lib/vedeu/output/clear/named_group_test.rb +8 -7
- data/test/lib/vedeu/output/presentation_test.rb +45 -0
- data/test/lib/vedeu/output/renderers_test.rb +14 -4
- data/test/lib/vedeu/{application_test.rb → runtime/application_test.rb} +0 -0
- data/test/lib/vedeu/{bootstrap_test.rb → runtime/bootstrap_test.rb} +11 -0
- data/test/lib/vedeu/{launcher_test.rb → runtime/launcher_test.rb} +0 -0
- data/test/lib/vedeu/{main_loop_test.rb → runtime/main_loop_test.rb} +0 -0
- data/test/lib/vedeu/{router_test.rb → runtime/router_test.rb} +13 -1
- metadata +20 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5a611c12fd166638545458a66d83fefcceb4201
|
4
|
+
data.tar.gz: 4d7c37c1ac9281c6cae6a65dc83827e78b2ec578
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 134e9ebd933984c61d89832cef7da1583aa36ea046e440ccdf2afa1f1bc6858820a6f7d270b39dfda7fa5204da4925808164998d4210f24ff016798cbeda2bff
|
7
|
+
data.tar.gz: 19f6de39f023fe2bb7d9d0aab6014ce112227df1e8a2f8b8d511d6aea01c4e4015587077967a5b7f1b8da8633ab3bc724c4c34669f74220bc2f961e61b3d8d57
|
data/lib/vedeu/all.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'vedeu/version'
|
2
|
-
require 'vedeu/launcher'
|
3
|
-
require 'vedeu/bootstrap'
|
2
|
+
require 'vedeu/runtime/launcher'
|
3
|
+
require 'vedeu/runtime/bootstrap'
|
4
4
|
require 'vedeu/exceptions'
|
5
5
|
require 'vedeu/log'
|
6
6
|
require 'vedeu/debug'
|
7
7
|
require 'vedeu/traps'
|
8
8
|
require 'vedeu/common'
|
9
9
|
require 'vedeu/terminal_mode'
|
10
|
-
require 'vedeu/router'
|
10
|
+
require 'vedeu/runtime/router'
|
11
11
|
|
12
12
|
require 'vedeu/configuration/cli'
|
13
13
|
require 'vedeu/configuration/api'
|
@@ -15,8 +15,8 @@ require 'vedeu/configuration/configuration'
|
|
15
15
|
|
16
16
|
require 'vedeu/terminal'
|
17
17
|
require 'vedeu/timer'
|
18
|
-
require 'vedeu/main_loop'
|
19
|
-
require 'vedeu/application'
|
18
|
+
require 'vedeu/runtime/main_loop'
|
19
|
+
require 'vedeu/runtime/application'
|
20
20
|
|
21
21
|
require 'vedeu/models/toggleable'
|
22
22
|
|
@@ -172,6 +172,7 @@ require 'vedeu/output/virtual_terminal'
|
|
172
172
|
require 'vedeu/output/wordwrap'
|
173
173
|
|
174
174
|
require 'vedeu/api'
|
175
|
+
require 'vedeu/internal_api'
|
175
176
|
|
176
177
|
require 'vedeu/bindings/application'
|
177
178
|
require 'vedeu/bindings/drb'
|
data/lib/vedeu/api.rb
CHANGED
@@ -22,33 +22,6 @@ module Vedeu
|
|
22
22
|
|
23
23
|
module_function
|
24
24
|
|
25
|
-
# Manipulate the repository of background colours.
|
26
|
-
#
|
27
|
-
# @example
|
28
|
-
# Vedeu.background_colours
|
29
|
-
#
|
30
|
-
# @!method background_colours
|
31
|
-
# @return [Vedeu::Backgrounds]
|
32
|
-
def_delegators Vedeu::Backgrounds, :background_colours
|
33
|
-
|
34
|
-
# Manipulate the repository of borders.
|
35
|
-
#
|
36
|
-
# @example
|
37
|
-
# Vedeu.borders
|
38
|
-
#
|
39
|
-
# @!method borders
|
40
|
-
# @return [Vedeu::Borders]
|
41
|
-
def_delegators Vedeu::Borders, :borders
|
42
|
-
|
43
|
-
# Manipulate the repository of buffers.
|
44
|
-
#
|
45
|
-
# @example
|
46
|
-
# Vedeu.buffers
|
47
|
-
#
|
48
|
-
# @!method buffers
|
49
|
-
# @return [Vedeu::Buffers]
|
50
|
-
def_delegators Vedeu::Buffers, :buffers
|
51
|
-
|
52
25
|
# @!method configure
|
53
26
|
# @see Vedeu::Configuration.configure
|
54
27
|
# @!method configuration
|
@@ -64,15 +37,6 @@ module Vedeu
|
|
64
37
|
# @return [Vedeu::Cursor]
|
65
38
|
def_delegators Vedeu::Cursors, :cursor
|
66
39
|
|
67
|
-
# Manipulate the repository of cursors.
|
68
|
-
#
|
69
|
-
# @example
|
70
|
-
# Vedeu.cursors
|
71
|
-
#
|
72
|
-
# @!method cursors
|
73
|
-
# @return [Vedeu::Cursors]
|
74
|
-
def_delegators Vedeu::Cursors, :cursors
|
75
|
-
|
76
40
|
# Manipulate the DRb server implementation.
|
77
41
|
#
|
78
42
|
# @example
|
@@ -149,15 +113,6 @@ module Vedeu
|
|
149
113
|
# @see Vedeu::Event.unbind
|
150
114
|
def_delegators Vedeu::Event, :bind, :bound?, :unbind
|
151
115
|
|
152
|
-
# Manipulate the repository of events.
|
153
|
-
#
|
154
|
-
# @example
|
155
|
-
# Vedeu.events
|
156
|
-
#
|
157
|
-
# @!method events
|
158
|
-
# @return [Vedeu::Events]
|
159
|
-
def_delegators Vedeu::Events, :events
|
160
|
-
|
161
116
|
# @example
|
162
117
|
# Vedeu.focus
|
163
118
|
# Vedeu.focus_by_name
|
@@ -178,51 +133,6 @@ module Vedeu
|
|
178
133
|
def_delegators Vedeu::Focus, :focus, :focus_by_name, :focussed?,
|
179
134
|
:focus_next, :focus_previous
|
180
135
|
|
181
|
-
# Manipulate the repository of foreground colours.
|
182
|
-
#
|
183
|
-
# @example
|
184
|
-
# Vedeu.foreground_colours
|
185
|
-
#
|
186
|
-
# @!method foreground_colours
|
187
|
-
# @return [Vedeu::Foregrounds]
|
188
|
-
def_delegators Vedeu::Foregrounds, :foreground_colours
|
189
|
-
|
190
|
-
# Manipulate the repository of geometries.
|
191
|
-
#
|
192
|
-
# @example
|
193
|
-
# Vedeu.geometries
|
194
|
-
#
|
195
|
-
# @!method geometries
|
196
|
-
# @return [Vedeu::Geometries]
|
197
|
-
def_delegators Vedeu::Geometries, :geometries
|
198
|
-
|
199
|
-
# Manipulate the repository of groups.
|
200
|
-
#
|
201
|
-
# @example
|
202
|
-
# Vedeu.groups
|
203
|
-
#
|
204
|
-
# @!method groups
|
205
|
-
# @return [Vedeu::Groups]
|
206
|
-
def_delegators Vedeu::Groups, :groups
|
207
|
-
|
208
|
-
# Manipulate the repository of interfaces.
|
209
|
-
#
|
210
|
-
# @example
|
211
|
-
# Vedeu.interfaces
|
212
|
-
#
|
213
|
-
# @!method interfaces
|
214
|
-
# @return [Vedeu::Interfaces]
|
215
|
-
def_delegators Vedeu::Interfaces, :interfaces
|
216
|
-
|
217
|
-
# Manipulate the repository of keymaps.
|
218
|
-
#
|
219
|
-
# @example
|
220
|
-
# Vedeu.keymaps
|
221
|
-
#
|
222
|
-
# @!method keymaps
|
223
|
-
# @return [Vedeu::Keymaps]
|
224
|
-
def_delegators Vedeu::Keymaps, :keymaps
|
225
|
-
|
226
136
|
# @example
|
227
137
|
# Vedeu.log
|
228
138
|
# Vedeu.log_stdout
|
@@ -250,24 +160,12 @@ module Vedeu
|
|
250
160
|
# @see Vedeu::Menu.menu
|
251
161
|
def_delegators Vedeu::Menu, :menu
|
252
162
|
|
253
|
-
#
|
163
|
+
# Instruct Vedeu to load the client application controller action with
|
164
|
+
# parameters.
|
254
165
|
#
|
255
|
-
#
|
256
|
-
# Vedeu.
|
257
|
-
|
258
|
-
# @!method menus
|
259
|
-
# @return [Vedeu::Menus]
|
260
|
-
def_delegators Vedeu::Menus, :menus
|
261
|
-
|
262
|
-
# @example
|
263
|
-
# Vedeu.renderer
|
264
|
-
# Vedeu.renderers
|
265
|
-
#
|
266
|
-
# @!method renderer
|
267
|
-
# @see Vedeu::Renderers#renderer
|
268
|
-
# @!method renderers
|
269
|
-
# @see Vedeu::Renderers#renderers
|
270
|
-
def_delegators Vedeu::Renderers, :renderer, :renderers
|
166
|
+
# @!method goto
|
167
|
+
# @see Vedeu::Router.goto
|
168
|
+
def_delegators Vedeu::Router, :goto
|
271
169
|
|
272
170
|
# Return the height of the terminal running the client application.
|
273
171
|
#
|
@@ -287,27 +185,6 @@ module Vedeu
|
|
287
185
|
# @see Vedeu::Terminal#width
|
288
186
|
def_delegators Vedeu::Terminal, :width
|
289
187
|
|
290
|
-
# Instruct the terminal to resize. This will happen automatically as the
|
291
|
-
# terminal recieves SIGWINCH signals.
|
292
|
-
#
|
293
|
-
# @example
|
294
|
-
# Vedeu.resize
|
295
|
-
#
|
296
|
-
# @!method resize
|
297
|
-
# @see Vedeu::Terminal#resize
|
298
|
-
def_delegators Vedeu::Terminal, :resize
|
299
|
-
|
300
|
-
# Measure the execution time of the code in the given block.
|
301
|
-
#
|
302
|
-
# @example
|
303
|
-
# Vedeu.timer do
|
304
|
-
# # ... some code here ...
|
305
|
-
# end
|
306
|
-
#
|
307
|
-
# @!method timer
|
308
|
-
# @see Vedeu::Timer.timer
|
309
|
-
def_delegators Vedeu::Timer, :timer
|
310
|
-
|
311
188
|
# Trigger an event by name.
|
312
189
|
#
|
313
190
|
# @example
|
@@ -14,19 +14,27 @@ module Vedeu
|
|
14
14
|
#
|
15
15
|
# @return [void]
|
16
16
|
def setup!
|
17
|
-
|
17
|
+
goto!
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
|
+
# Call a client application controller's action with parameters.
|
23
|
+
#
|
22
24
|
# @example
|
23
|
-
# Vedeu.trigger(:
|
25
|
+
# Vedeu.trigger(:_goto_, :your_controller, :some_action, { id: 7 })
|
26
|
+
# Vedeu.goto(:your_controller, :some_action, { id: 7 })
|
24
27
|
#
|
25
28
|
# @return [void]
|
26
|
-
def
|
27
|
-
Vedeu.bind(:
|
29
|
+
def goto!
|
30
|
+
Vedeu.bind(:_goto_) do |controller, action, **args|
|
28
31
|
Vedeu::Router.goto(controller, action, **args)
|
29
32
|
end
|
33
|
+
|
34
|
+
# @todo Remove this aliasing event. (GL 2015-07-26)
|
35
|
+
Vedeu.bind(:_action_) do |controller, action, **args|
|
36
|
+
Vedeu.trigger(:_goto_, controller, action, **args)
|
37
|
+
end
|
30
38
|
end
|
31
39
|
|
32
40
|
end # Application
|
@@ -7,7 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# @note
|
9
9
|
# Unbinding any of these events is likely to cause problems, so I would
|
10
|
-
# advise leaving them alone. A safe rule:
|
10
|
+
# advise leaving them alone. A safe rule: when the name starts with an
|
11
11
|
# underscore, it's probably used by Vedeu internally.
|
12
12
|
#
|
13
13
|
# :nocov:
|
@@ -56,8 +56,8 @@ module Vedeu
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
# Clears the whole terminal space, or
|
60
|
-
#
|
59
|
+
# Clears the whole terminal space, or when a name is given, the named
|
60
|
+
# interface area will be cleared.
|
61
61
|
#
|
62
62
|
# @example
|
63
63
|
# Vedeu.trigger(:_clear_)
|
@@ -196,7 +196,7 @@ module Vedeu
|
|
196
196
|
Vedeu.bind(:_mode_switch_) { fail Vedeu::ModeSwitch }
|
197
197
|
end
|
198
198
|
|
199
|
-
# Will cause the named interface to refresh, or
|
199
|
+
# Will cause the named interface to refresh, or when a name is not given,
|
200
200
|
# will refresh all interfaces.
|
201
201
|
#
|
202
202
|
# @note: Hidden interfaces will be still refreshed in memory but not
|
@@ -41,7 +41,7 @@ module Vedeu
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
# Hide the cursor of the named interface or
|
44
|
+
# Hide the cursor of the named interface or when a name is not given, the
|
45
45
|
# interface currently in focus.
|
46
46
|
#
|
47
47
|
# @example
|
@@ -54,6 +54,8 @@ module Vedeu
|
|
54
54
|
Vedeu.bind(:_hide_cursor_) do |name|
|
55
55
|
Vedeu::Cursor.hide_cursor(name)
|
56
56
|
end
|
57
|
+
|
58
|
+
# @todo Remove this aliasing event. (GL 2015-07-26)
|
57
59
|
Vedeu.bind(:_cursor_hide_) do |name|
|
58
60
|
Vedeu.trigger(:_hide_cursor_, name)
|
59
61
|
end
|
@@ -79,7 +81,7 @@ module Vedeu
|
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
82
|
-
# Show the cursor of the named interface or
|
84
|
+
# Show the cursor of the named interface or when a name is not given, the
|
83
85
|
# interface currently in focus.
|
84
86
|
#
|
85
87
|
# @example
|
@@ -92,6 +94,8 @@ module Vedeu
|
|
92
94
|
Vedeu.bind(:_show_cursor_) do |name|
|
93
95
|
Vedeu::Cursor.show_cursor(name)
|
94
96
|
end
|
97
|
+
|
98
|
+
# @todo Remove this aliasing event. (GL 2015-07-26)
|
95
99
|
Vedeu.bind(:_cursor_show_) do |name|
|
96
100
|
Vedeu.trigger(:_show_cursor_, name)
|
97
101
|
end
|
data/lib/vedeu/buffers/buffer.rb
CHANGED
@@ -7,7 +7,7 @@ module Vedeu
|
|
7
7
|
#
|
8
8
|
# The content on the screen, or last output will always be the 'Front' buffer.
|
9
9
|
# Content due to be displayed on next refresh will come from the 'Back' buffer
|
10
|
-
#
|
10
|
+
# when available, otherwise from the current 'Front' buffer. When new content
|
11
11
|
# is copied to the 'Front' buffer, the current 'Front' buffer is also copied
|
12
12
|
# to the 'Previous' buffer.
|
13
13
|
#
|
@@ -19,8 +19,8 @@ module Vedeu
|
|
19
19
|
self
|
20
20
|
end
|
21
21
|
|
22
|
-
#
|
23
|
-
# refresh event is triggered for the interface.
|
22
|
+
# When a name is given, the view is stored with this name. This view will be
|
23
|
+
# shown next time the refresh event is triggered for the interface.
|
24
24
|
#
|
25
25
|
# @raise [Vedeu::InvalidSyntax] The name is not defined.
|
26
26
|
# @return [Vedeu::Interface]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require_relative 'config/configuration'
|
2
|
-
#
|
2
|
+
# When manually setting the entry point below, uncomment this line:
|
3
3
|
# require_relative 'app/controllers/some_controller'
|
4
4
|
|
5
5
|
module <%= object.name_as_class %>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Vedeu.configure do
|
2
2
|
# base_path
|
3
3
|
|
4
|
-
# colour_mode 16_777_216 # Some terminals don't render colour at all
|
4
|
+
# colour_mode 16_777_216 # Some terminals don't render colour at all when this
|
5
5
|
# value is not one of 8, 16, 256 or 16777216.
|
6
6
|
|
7
7
|
# compression false
|
8
8
|
|
9
|
-
# debug! #
|
9
|
+
# debug! # Requires "gem 'ruby-prof'" in your Gemfile.
|
10
10
|
# drb!
|
11
11
|
# drb_host 'localhost'
|
12
12
|
# drb_port 21420
|
@@ -37,8 +37,8 @@ module Vedeu
|
|
37
37
|
make_view_class_file
|
38
38
|
|
39
39
|
output("Please update the 'root' setting in 'config/configuration.rb'" \
|
40
|
-
" to '#{app_name}::#{name_as_class}Controller.new'
|
41
|
-
'
|
40
|
+
" to '#{app_name}::#{name_as_class}Controller.new' to start " \
|
41
|
+
'Vedeu at this controller.')
|
42
42
|
end
|
43
43
|
|
44
44
|
private
|
data/lib/vedeu/colours/colour.rb
CHANGED
@@ -23,7 +23,7 @@ module Vedeu
|
|
23
23
|
# to): iTerm2 (OSX), Gnome Terminal (Linux).
|
24
24
|
#
|
25
25
|
# Setting your `$TERM` environment variable as above gets you up to 256
|
26
|
-
# colours, but
|
26
|
+
# colours, but when you then add the `colour_mode 16_777_216` configuration to
|
27
27
|
# your client application, it's really a hit and miss affair. iTerm2 renders
|
28
28
|
# all the colours correctly as does Gnome Terminal. Terminator (Linux) goes
|
29
29
|
# crazy though and defaults to 16 colours despite the `$TERM` setting. This
|
@@ -14,8 +14,8 @@ module Vedeu
|
|
14
14
|
# colour corresponding with that colour.
|
15
15
|
#
|
16
16
|
# Finally, when provided a CSS/HTML colour string e.g. '#ff0000', Vedeu will
|
17
|
-
# translate that to the 8-bit escape sequence or
|
18
|
-
# terminal and the `
|
17
|
+
# translate that to the 8-bit escape sequence or when you have a capable
|
18
|
+
# terminal and the `TERM=xterm-truecolor` environment variable set,
|
19
19
|
# a 24-bit representation.
|
20
20
|
#
|
21
21
|
# @todo More documentation required (create a fancy chart!)
|
@@ -49,7 +49,7 @@ module Vedeu
|
|
49
49
|
alias_method :compression?, :compression
|
50
50
|
|
51
51
|
# Provides the mechanism to configure Vedeu. If the client application
|
52
|
-
# sets options, override the defaults with those, and
|
52
|
+
# sets options, override the defaults with those, and when command-line
|
53
53
|
# arguments are provided at application invocation, override any options
|
54
54
|
# with the arguments provided.
|
55
55
|
#
|