vedeu 0.4.44 → 0.4.45
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/.ruby-version +1 -1
- data/README.md +3 -2
- data/Rakefile +0 -6
- data/docs/api.md +56 -53
- data/docs/applications.md +1 -1
- data/docs/dsl.md +2 -0
- data/docs/getting_started.md +1 -1
- data/docs/object_graph.md +1 -1
- data/docs/views.md +1 -1
- data/lib/vedeu.rb +4 -0
- data/lib/vedeu/api.rb +75 -13
- data/lib/vedeu/application/application_view.rb +3 -0
- data/lib/vedeu/application/controller.rb +13 -0
- data/lib/vedeu/bootstrap.rb +11 -0
- data/lib/vedeu/buffers/buffer.rb +2 -0
- data/lib/vedeu/configuration/api.rb +1 -15
- data/lib/vedeu/configuration/configuration.rb +1 -0
- data/lib/vedeu/cursor/cursor.rb +2 -0
- data/lib/vedeu/geometry/dimension.rb +2 -0
- data/lib/vedeu/geometry/geometry.rb +4 -0
- data/lib/vedeu/input/keymap.rb +2 -0
- data/lib/vedeu/launcher.rb +14 -0
- data/lib/vedeu/main_loop.rb +2 -0
- data/lib/vedeu/models/cell.rb +2 -0
- data/lib/vedeu/models/char.rb +2 -0
- data/lib/vedeu/models/escape_char.rb +2 -0
- data/lib/vedeu/models/group.rb +2 -0
- data/lib/vedeu/output/clear.rb +2 -0
- data/lib/vedeu/output/esc.rb +8 -16
- data/lib/vedeu/output/render_border.rb +43 -19
- data/lib/vedeu/output/renderers/file.rb +2 -0
- data/lib/vedeu/output/wordwrap.rb +2 -0
- data/lib/vedeu/repositories/repositories/backgrounds.rb +1 -3
- data/lib/vedeu/repositories/repositories/borders.rb +0 -4
- data/lib/vedeu/repositories/repositories/buffers.rb +0 -4
- data/lib/vedeu/repositories/repositories/cursors.rb +1 -7
- data/lib/vedeu/repositories/repositories/events.rb +0 -4
- data/lib/vedeu/repositories/repositories/foregrounds.rb +1 -3
- data/lib/vedeu/repositories/repositories/geometries.rb +0 -4
- data/lib/vedeu/repositories/repositories/groups.rb +0 -4
- data/lib/vedeu/repositories/repositories/interfaces.rb +0 -4
- data/lib/vedeu/repositories/repositories/keymaps.rb +0 -4
- data/lib/vedeu/repositories/repositories/menus.rb +0 -4
- data/lib/vedeu/repositories/repository.rb +6 -0
- data/lib/vedeu/templating/directive.rb +3 -0
- data/lib/vedeu/traps.rb +2 -0
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/cli/generator/helpers_test.rb +33 -1
- data/test/lib/vedeu/distributed/client_test.rb +10 -0
- data/test/lib/vedeu/output/text_test.rb +18 -12
- data/test/lib/vedeu/repositories/repository_test.rb +11 -2
- data/test/support/helpers/model_test_class.rb +2 -0
- data/test/test_helper.rb +7 -2
- data/vedeu.gemspec +2 -3
- metadata +5 -21
- data/inch.yml +0 -5
- data/logs/.gitkeep +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68ee4c2ed644e698df332ae110ee488fcb38251c
|
4
|
+
data.tar.gz: 5a542609da0c161347ec2cd3de1fada895995aef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32a29cc71db5d5e1347b6fa9fe5a0d424c4bac02dedf1eb61e325650f386d01dcaee72c4fc890cd6eba16b50f10353ec2cda4a4f75064e156ae61be003217193
|
7
|
+
data.tar.gz: 42a71d09b9aa1dfed20b9b60f1dc92a1967fd134d2b27f3b028d3d59bd6070ec9eb8c5606b924ab4a8c3a26fd43d68c7f74085ef6a584bcf43fbb73b30d9bdfa
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.2
|
data/README.md
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
[](https://codeclimate.com/github/gavinlaking/vedeu)
|
2
2
|
[](https://travis-ci.org/gavinlaking/vedeu)
|
3
|
-
[](http://inch-ci.org/github/gavinlaking/vedeu)
|
4
3
|
|
5
4
|
# Vedeu
|
6
5
|
|
@@ -11,7 +10,9 @@ Vedeu (vee-dee-you; aka VDU) is my attempt at creating a terminal based
|
|
11
10
|
|
12
11
|
## Requirements
|
13
12
|
|
14
|
-
Vedeu was been built primarily with Ruby v2.1
|
13
|
+
Vedeu was been built primarily with Ruby v2.1; however, the
|
14
|
+
[.ruby-version](https://github.com/gavinlaking/vedeu/blob/master/.ruby-version)
|
15
|
+
file will indicate the currently used Ruby version.
|
15
16
|
|
16
17
|
When Vedeu started I was a MacOSX user, I've since moved to Linux. You shouldn't have any problems with either of these operating systems.
|
17
18
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rake/testtask'
|
3
|
-
require 'inch/rake'
|
4
3
|
require 'yard'
|
5
4
|
require 'rubocop/rake_task'
|
6
5
|
|
@@ -22,11 +21,6 @@ YARD::Rake::YardocTask.new(:yard) do |t|
|
|
22
21
|
]
|
23
22
|
end
|
24
23
|
|
25
|
-
Inch::Rake::Suggest.new(:inch) do |suggest|
|
26
|
-
suggest.args << '--pedantic'
|
27
|
-
suggest.args << '--all'
|
28
|
-
end
|
29
|
-
|
30
24
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
31
25
|
task.patterns = ['lib/**/*.rb']
|
32
26
|
task.formatters = ['progress']
|
data/docs/api.md
CHANGED
@@ -1,27 +1,7 @@
|
|
1
|
-
|
1
|
+
# @title Vedeu API
|
2
2
|
|
3
3
|
Vedeu provides a simple DSL for the creation of terminal/console based
|
4
|
-
applications.
|
5
|
-
|
6
|
-
Below is a list of all the API methods. These can be accessed in your
|
7
|
-
application by including Vedeu in your class or module or by calling them directly.
|
8
|
-
|
9
|
-
|
10
|
-
### API 'include' example
|
11
|
-
|
12
|
-
Doing it this way will mean you can use any API method without the `Vedeu.` prefix.
|
13
|
-
|
14
|
-
```ruby
|
15
|
-
class SomeClassInYourApplication
|
16
|
-
include Vedeu
|
17
|
-
|
18
|
-
# ...
|
19
|
-
```
|
20
|
-
|
21
|
-
|
22
|
-
### API direct example
|
23
|
-
|
24
|
-
Doing it this way means you need to use the `Vedeu.` prefix.
|
4
|
+
applications. Below is a list of all the API methods:
|
25
5
|
|
26
6
|
```ruby
|
27
7
|
class OtherClassInYourApplication
|
@@ -34,32 +14,42 @@ class OtherClassInYourApplication
|
|
34
14
|
# ...
|
35
15
|
```
|
36
16
|
|
37
|
-
|
17
|
+
Note: Nesting indicates where an API method is allowed/supposed to be used.
|
38
18
|
|
19
|
+
#### Borders
|
39
20
|
|
40
|
-
|
21
|
+
- Vedeu.border
|
41
22
|
|
42
|
-
|
23
|
+
#### Configuration
|
24
|
+
|
25
|
+
- Vedeu.configure
|
26
|
+
- Vedeu.configuration
|
43
27
|
|
44
28
|
#### Events
|
45
29
|
|
46
|
-
- bind
|
47
|
-
- trigger
|
48
|
-
- unbind
|
30
|
+
- Vedeu.bind
|
31
|
+
- Vedeu.trigger
|
32
|
+
- Vedeu.unbind
|
33
|
+
|
34
|
+
#### Geometry
|
35
|
+
|
36
|
+
- Vedeu.geometry
|
37
|
+
|
38
|
+
#### Groups
|
49
39
|
|
40
|
+
- Vedeu.group
|
50
41
|
|
51
42
|
#### Input
|
52
43
|
|
53
|
-
- keypress
|
54
|
-
- keymap
|
44
|
+
- Vedeu.keypress
|
45
|
+
- Vedeu.keymap
|
55
46
|
- key
|
56
47
|
- name
|
57
48
|
- interface
|
58
49
|
|
59
|
-
|
60
50
|
#### Interfaces
|
61
51
|
|
62
|
-
- interface
|
52
|
+
- Vedeu.interface
|
63
53
|
- background
|
64
54
|
- border
|
65
55
|
- cursor
|
@@ -83,10 +73,10 @@ Note: Nesting indicates where an API method is allowed/supposed to be used.
|
|
83
73
|
- style
|
84
74
|
- use
|
85
75
|
|
86
|
-
|
87
76
|
#### Views
|
88
77
|
|
89
|
-
- renders
|
78
|
+
- Vedeu.renders
|
79
|
+
- Vedeu.render
|
90
80
|
- view
|
91
81
|
- colour
|
92
82
|
- cursor
|
@@ -116,36 +106,49 @@ Note: Nesting indicates where an API method is allowed/supposed to be used.
|
|
116
106
|
- name
|
117
107
|
- style
|
118
108
|
- use
|
119
|
-
- views
|
109
|
+
- Vedeu.views
|
120
110
|
- ... as #renders
|
121
111
|
|
122
|
-
|
123
112
|
#### Menus
|
124
113
|
|
125
|
-
- menu
|
114
|
+
- Vedeu.menu
|
126
115
|
- items
|
127
116
|
- name
|
128
117
|
|
118
|
+
#### Renderers
|
129
119
|
|
130
|
-
|
120
|
+
- Vedeu.renderer
|
121
|
+
- Vedeu.renderers
|
131
122
|
|
132
|
-
|
133
|
-
- focus
|
134
|
-
- focus_by_name
|
135
|
-
- focussed?
|
136
|
-
- focus_next
|
137
|
-
- focus_previous
|
123
|
+
#### Repositories
|
138
124
|
|
139
|
-
|
140
|
-
Usage: Vedeu.height
|
141
|
-
Returns the height (in lines) for the current terminal.
|
125
|
+
These are collections which you can access:
|
142
126
|
|
143
|
-
-
|
144
|
-
-
|
145
|
-
|
127
|
+
- Vedeu.background_colours
|
128
|
+
- Vedeu.foreground_colours
|
129
|
+
- Vedeu.borders
|
130
|
+
- Vedeu.buffers
|
131
|
+
- Vedeu.cursors
|
132
|
+
- Vedeu.events
|
133
|
+
- Vedeu.geometries
|
134
|
+
- Vedeu.groups
|
135
|
+
- Vedeu.interfaces
|
136
|
+
- Vedeu.keymaps
|
137
|
+
- Vedeu.menus
|
146
138
|
|
139
|
+
#### Miscellany
|
147
140
|
|
148
|
-
-
|
149
|
-
|
150
|
-
|
141
|
+
- Vedeu.cursor
|
142
|
+
- Vedeu.focus
|
143
|
+
- Vedeu.focus_by_name
|
144
|
+
- Vedeu.focussed?
|
145
|
+
- Vedeu.focus_next
|
146
|
+
- Vedeu.focus_previous
|
147
|
+
- Vedeu.height
|
148
|
+
- Vedeu.log
|
149
|
+
- Vedeu.log_stdout
|
150
|
+
- Vedeu.log_stderr
|
151
|
+
- Vedeu.resize
|
152
|
+
- Vedeu.timer
|
153
|
+
- Vedeu.width
|
151
154
|
|
data/docs/applications.md
CHANGED
data/docs/dsl.md
CHANGED
data/docs/getting_started.md
CHANGED
data/docs/object_graph.md
CHANGED
data/docs/views.md
CHANGED
data/lib/vedeu.rb
CHANGED
@@ -27,11 +27,14 @@ module Vedeu
|
|
27
27
|
|
28
28
|
def_delegators Vedeu::Log, :log
|
29
29
|
|
30
|
+
# Return the name of currently focussed interface.
|
31
|
+
#
|
30
32
|
# @return [Vedeu::Focus]
|
31
33
|
def self.focusable
|
32
34
|
@focusable ||= Vedeu::Focus
|
33
35
|
end
|
34
36
|
|
37
|
+
# :nocov:
|
35
38
|
# When Vedeu is included within one of your classes, you should have all
|
36
39
|
# API methods at your disposal.
|
37
40
|
#
|
@@ -48,6 +51,7 @@ module Vedeu
|
|
48
51
|
receiver.send(:include, API)
|
49
52
|
receiver.extend(API)
|
50
53
|
end
|
54
|
+
# :nocov:
|
51
55
|
|
52
56
|
end # Vedeu
|
53
57
|
|
data/lib/vedeu/api.rb
CHANGED
@@ -33,16 +33,31 @@ module Vedeu
|
|
33
33
|
|
34
34
|
module_function
|
35
35
|
|
36
|
+
# Manipulate the repository of background colours.
|
37
|
+
#
|
38
|
+
# @example
|
39
|
+
# Vedeu.background_colours
|
40
|
+
#
|
36
41
|
# @!method background_colours
|
37
|
-
#
|
42
|
+
# @return [Vedeu::Backgrounds]
|
38
43
|
def_delegators Vedeu::Backgrounds, :background_colours
|
39
44
|
|
45
|
+
# Manipulate the repository of borders.
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# Vedeu.borders
|
49
|
+
#
|
40
50
|
# @!method borders
|
41
|
-
#
|
51
|
+
# @return [Vedeu::Borders]
|
42
52
|
def_delegators Vedeu::Borders, :borders
|
43
53
|
|
54
|
+
# Manipulate the repository of buffers.
|
55
|
+
#
|
56
|
+
# @example
|
57
|
+
# Vedeu.buffers
|
58
|
+
#
|
44
59
|
# @!method buffers
|
45
|
-
#
|
60
|
+
# @return [Vedeu::Buffers]
|
46
61
|
def_delegators Vedeu::Buffers, :buffers
|
47
62
|
|
48
63
|
# @!method configure
|
@@ -51,11 +66,23 @@ module Vedeu
|
|
51
66
|
# @see Vedeu::Configuration.configuration
|
52
67
|
def_delegators Vedeu::Configuration, :configure, :configuration
|
53
68
|
|
69
|
+
# Manipulate the currently focussed cursor.
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# Vedeu.cursor
|
73
|
+
#
|
54
74
|
# @!method cursor
|
55
|
-
#
|
75
|
+
# @return [Vedeu::Cursor]
|
76
|
+
def_delegators Vedeu::Cursors, :cursor
|
77
|
+
|
78
|
+
# Manipulate the repository of cursors.
|
79
|
+
#
|
80
|
+
# @example
|
81
|
+
# Vedeu.cursors
|
82
|
+
#
|
56
83
|
# @!method cursors
|
57
|
-
#
|
58
|
-
def_delegators Vedeu::Cursors, :
|
84
|
+
# @return [Vedeu::Cursors]
|
85
|
+
def_delegators Vedeu::Cursors, :cursors
|
59
86
|
|
60
87
|
# @!method border
|
61
88
|
# @see Vedeu::DSL::Border.border
|
@@ -89,8 +116,13 @@ module Vedeu
|
|
89
116
|
# @see Vedeu::Event.unbind
|
90
117
|
def_delegators Vedeu::Event, :bind, :unbind
|
91
118
|
|
119
|
+
# Manipulate the repository of events.
|
120
|
+
#
|
121
|
+
# @example
|
122
|
+
# Vedeu.events
|
123
|
+
#
|
92
124
|
# @!method events
|
93
|
-
#
|
125
|
+
# @return [Vedeu::Events]
|
94
126
|
def_delegators Vedeu::Events, :events
|
95
127
|
|
96
128
|
# @!method focus
|
@@ -106,24 +138,49 @@ module Vedeu
|
|
106
138
|
def_delegators Vedeu::Focus, :focus, :focus_by_name, :focussed?,
|
107
139
|
:focus_next, :focus_previous
|
108
140
|
|
141
|
+
# Manipulate the repository of foreground colours.
|
142
|
+
#
|
143
|
+
# @example
|
144
|
+
# Vedeu.foreground_colours
|
145
|
+
#
|
109
146
|
# @!method foreground_colours
|
110
|
-
#
|
147
|
+
# @return [Vedeu::Foregrounds]
|
111
148
|
def_delegators Vedeu::Foregrounds, :foreground_colours
|
112
149
|
|
150
|
+
# Manipulate the repository of geometries.
|
151
|
+
#
|
152
|
+
# @example
|
153
|
+
# Vedeu.geometries
|
154
|
+
#
|
113
155
|
# @!method geometries
|
114
|
-
#
|
156
|
+
# @return [Vedeu::Geometries]
|
115
157
|
def_delegators Vedeu::Geometries, :geometries
|
116
158
|
|
159
|
+
# Manipulate the repository of groups.
|
160
|
+
#
|
161
|
+
# @example
|
162
|
+
# Vedeu.groups
|
163
|
+
#
|
117
164
|
# @!method groups
|
118
|
-
#
|
165
|
+
# @return [Vedeu::Groups]
|
119
166
|
def_delegators Vedeu::Groups, :groups
|
120
167
|
|
168
|
+
# Manipulate the repository of interfaces.
|
169
|
+
#
|
170
|
+
# @example
|
171
|
+
# Vedeu.interfaces
|
172
|
+
#
|
121
173
|
# @!method interfaces
|
122
|
-
#
|
174
|
+
# @return [Vedeu::Interfaces]
|
123
175
|
def_delegators Vedeu::Interfaces, :interfaces
|
124
176
|
|
177
|
+
# Manipulate the repository of keymaps.
|
178
|
+
#
|
179
|
+
# @example
|
180
|
+
# Vedeu.keymaps
|
181
|
+
#
|
125
182
|
# @!method keymaps
|
126
|
-
#
|
183
|
+
# @return [Vedeu::Keymaps]
|
127
184
|
def_delegators Vedeu::Keymaps, :keymaps
|
128
185
|
|
129
186
|
# @!method log
|
@@ -142,8 +199,13 @@ module Vedeu
|
|
142
199
|
# @see Vedeu::Menu.menu
|
143
200
|
def_delegators Vedeu::Menu, :menu
|
144
201
|
|
202
|
+
# Manipulate the repository of menus.
|
203
|
+
#
|
204
|
+
# @example
|
205
|
+
# Vedeu.menus
|
206
|
+
#
|
145
207
|
# @!method menus
|
146
|
-
#
|
208
|
+
# @return [Vedeu::Menus]
|
147
209
|
def_delegators Vedeu::Menus, :menus
|
148
210
|
|
149
211
|
# @!method renderer
|
@@ -8,7 +8,20 @@ module Vedeu
|
|
8
8
|
# When included, provide these methods as class methods.
|
9
9
|
module ClassMethods
|
10
10
|
|
11
|
+
# Specifying the controller name in your controller provides a Vedeu event
|
12
|
+
# which will trigger the loading of the controller.
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# class YourController
|
16
|
+
# controller_name :your_controller
|
17
|
+
# # ...
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# Vedeu.trigger(:show_your_controller) # this event is now available to
|
21
|
+
# # trigger.
|
22
|
+
#
|
11
23
|
# @param name [Symbol] The name of the controller.
|
24
|
+
# @return [void]
|
12
25
|
def controller_name(name)
|
13
26
|
Vedeu.bind("show_#{name}".to_sym) { new }
|
14
27
|
end
|