vedeu 0.6.26 → 0.6.27
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/.yardopts +7 -0
- data/README.md +12 -4
- data/docs/border.md +23 -0
- data/docs/buffer.md +29 -0
- data/docs/cursor.md +18 -0
- data/docs/events/visibility.md +2 -2
- data/docs/geometry.md +28 -0
- data/docs/group.md +13 -0
- data/docs/interfaces.md +21 -0
- data/docs/view.md +17 -0
- data/examples/demo_groups.rb +105 -0
- data/lib/vedeu/bindings/visibility.rb +3 -1
- data/lib/vedeu/dsl/line.rb +12 -9
- data/lib/vedeu/dsl/view.rb +5 -1
- data/lib/vedeu/groups/group.rb +1 -1
- data/lib/vedeu/models/interface.rb +7 -6
- data/lib/vedeu/models/page.rb +1 -8
- data/lib/vedeu/output/clear/interface.rb +1 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/application/application_view_test.rb +0 -5
- data/test/lib/vedeu/bindings/visibility_test.rb +3 -0
- data/test/lib/vedeu/buffers/refresh_test.rb +17 -1
- data/vedeu.gemspec +3 -1
- metadata +38 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f676ea7902c40adea7f5844815c2bd92cc0524ca
|
|
4
|
+
data.tar.gz: 55d28506df00da6be9d8db123c9f5cc3475b154a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2ad1f1eb8361880265d53dcc03a62684ef9485c967c40022e012e08080135255da79b44365388e05f8947018f73bc4aa121ba5f0bb96885c1936d7dc7f56ca53
|
|
7
|
+
data.tar.gz: a49319ea6f19f09d106606a076b5db4a2985caacaa67572173a7495e156e8f4319feb8d1afd3580eb161328f7dddc9d30df171fe30703fd4e271359904db5789
|
data/.yardopts
CHANGED
|
@@ -3,11 +3,18 @@
|
|
|
3
3
|
--embed-mixins
|
|
4
4
|
-
|
|
5
5
|
docs/api.md
|
|
6
|
+
docs/border.md
|
|
7
|
+
docs/buffer.md
|
|
6
8
|
docs/configuration.md
|
|
9
|
+
docs/cursor.md
|
|
7
10
|
docs/dsl.md
|
|
8
11
|
docs/events.md
|
|
12
|
+
docs/geometry.md
|
|
9
13
|
docs/getting_started.md
|
|
14
|
+
docs/group.md
|
|
15
|
+
docs/interfaces.md
|
|
10
16
|
docs/object_graph.md
|
|
17
|
+
docs/view.md
|
|
11
18
|
docs/events/application.md
|
|
12
19
|
docs/events/document.md
|
|
13
20
|
docs/events/drb.md
|
data/README.md
CHANGED
|
@@ -45,13 +45,21 @@ to your project here.
|
|
|
45
45
|
|
|
46
46
|
Vedeu is documented using Yard. I hope to produce more 'General Usage'
|
|
47
47
|
documentation shortly. In the meantime, please browse the
|
|
48
|
-
[RubyDoc](http://rubydoc.info/gems/vedeu).
|
|
49
|
-
|
|
48
|
+
[RubyDoc](http://rubydoc.info/gems/vedeu). In no particular order,
|
|
49
|
+
here is some documentation for the various aspects of Vedeu:
|
|
50
|
+
|
|
51
|
+
- [Interfaces](http://rubydoc.info/gems/vedeu/file/docs/.md)
|
|
52
|
+
- [Groups](http://rubydoc.info/gems/vedeu/file/docs/group.md)
|
|
53
|
+
- [Views](http://rubydoc.info/gems/vedeu/file/docs/view.md)
|
|
54
|
+
- [Buffers](http://rubydoc.info/gems/vedeu/file/docs/buffer.md)
|
|
55
|
+
- [Geometry](http://rubydoc.info/gems/vedeu/file/docs/geometry.md)
|
|
56
|
+
- [Borders](http://rubydoc.info/gems/vedeu/file/docs/border.md)
|
|
57
|
+
- [Cursors](http://rubydoc.info/gems/vedeu/file/docs/cursor.md)
|
|
58
|
+
- [Events](http://rubydoc.info/gems/vedeu/file/docs/events.md)
|
|
59
|
+
- [Configuration](http://rubydoc.info/gems/vedeu/file/docs/configuration.md)
|
|
50
60
|
- [Getting Started](http://rubydoc.info/gems/vedeu/file/docs/getting_started.md)
|
|
51
61
|
- [The Vedeu DSL](http://rubydoc.info/gems/vedeu/file/docs/dsl.md)
|
|
52
62
|
- [The Vedeu API](http://rubydoc.info/gems/vedeu/file/docs/api.md)
|
|
53
|
-
- [Vedeu Configuration](http://rubydoc.info/gems/vedeu/file/docs/configuration.md)
|
|
54
|
-
- [Vedeu Events](http://rubydoc.info/gems/vedeu/file/docs/events.md)
|
|
55
63
|
- [Object Graphs](http://rubydoc.info/gems/vedeu/file/docs/object_graph.md)
|
|
56
64
|
|
|
57
65
|
## Development / Contributing
|
data/docs/border.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# @title Vedeu Borders
|
|
2
|
+
# Vedeu Borders
|
|
3
|
+
|
|
4
|
+
The interfaces of Vedeu can each have their own border.
|
|
5
|
+
|
|
6
|
+
- It has a name. This name associates it with an
|
|
7
|
+
{file:docs/interface.md Interface}.
|
|
8
|
+
- Each of its corners, the horizontal, and the vertical character can
|
|
9
|
+
be defined as different characters.
|
|
10
|
+
- It can have a foreground and a background and style, independent of
|
|
11
|
+
the interface to which it belongs.
|
|
12
|
+
- Each of the sides of the border can be shown or hidden
|
|
13
|
+
independently.
|
|
14
|
+
- The border itself can be enabled and disabled (shown/hidden) as
|
|
15
|
+
required.
|
|
16
|
+
- The border can have a title, which is displayed on the top side.
|
|
17
|
+
- It can also have a caption, which is displayed on the bottom side.
|
|
18
|
+
- The sides of the border will use:
|
|
19
|
+
- The first (top) line of the geometry.
|
|
20
|
+
- The last (bottom) line of the geometry.
|
|
21
|
+
- The first character (left) of the geometry.
|
|
22
|
+
- The last character (right) of the geometry.
|
|
23
|
+
- The border can be refreshed independently of the interface.
|
data/docs/buffer.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @title Vedeu Buffers
|
|
2
|
+
# Vedeu Buffers
|
|
3
|
+
|
|
4
|
+
Each interface has an associated buffer, referenced by name. The
|
|
5
|
+
buffer has three states; 'back', 'front' and 'previous'.
|
|
6
|
+
|
|
7
|
+
- 'back': New view data is added to the 'back' buffer. It will be
|
|
8
|
+
shown next time an interface or view is refreshed; by being moved to
|
|
9
|
+
the 'front' buffer.
|
|
10
|
+
- 'front': Current view data belongs on the 'front' buffer. It will be
|
|
11
|
+
shown every time the interface is refreshed unless new view data has
|
|
12
|
+
been added to the 'back' buffer (see 'back').
|
|
13
|
+
- 'previous': Old view data resides on the 'previous' buffer. When new
|
|
14
|
+
view data has been added to the back buffer, upon the next refresh,
|
|
15
|
+
the current 'front' buffer data is moved to the 'previous' buffer,
|
|
16
|
+
and the new 'back' data is added to the 'front' buffer.
|
|
17
|
+
|
|
18
|
+
Try to think of the above process as a conveyor belt of data. You will
|
|
19
|
+
only see 'front' data in the terminal.
|
|
20
|
+
|
|
21
|
+
1) new -> 'back'
|
|
22
|
+
2) refresh happens
|
|
23
|
+
3) 'back' is copied to 'front'
|
|
24
|
+
4) 'front' is displayed, but also copied to 'previous'
|
|
25
|
+
|
|
26
|
+
- Buffers can be refreshed independently. If the buffer for an
|
|
27
|
+
interface is currently hidden, it will still refresh, you just won't
|
|
28
|
+
see it. When the interface is visible again, you will see whatever
|
|
29
|
+
the latest buffer data is for that interface.
|
data/docs/cursor.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# @title Vedeu Cursors
|
|
2
|
+
# Vedeu Cursors
|
|
3
|
+
|
|
4
|
+
Each interface defined in Vedeu will have a separate cursor named,
|
|
5
|
+
conveniently after the interface itself.
|
|
6
|
+
|
|
7
|
+
- The cursor can moved left, right, up or down via events.
|
|
8
|
+
- The cursor can be shown or hidden (independently of the interface).
|
|
9
|
+
- The cursor may not be drawn on the border of the interface if a
|
|
10
|
+
border is defined and visible for any side of the interface.
|
|
11
|
+
- The cursor may not be drawn outside of the geometry of the interface
|
|
12
|
+
if a border is not defined or is invisible for the interface.
|
|
13
|
+
- The position of the cursor is remembered for each interface.
|
|
14
|
+
- The cursor determines that which is shown in the interface via its
|
|
15
|
+
offset (this allows content to be larger than the interface size and
|
|
16
|
+
therefore 'scrolling').
|
|
17
|
+
- The cursor can be refreshed independently of the interface meaning
|
|
18
|
+
the content of the interface can change position if needed.
|
data/docs/events/visibility.md
CHANGED
|
@@ -44,7 +44,7 @@ Hiding a group of interfaces.
|
|
|
44
44
|
Vedeu.hide_group(name)
|
|
45
45
|
|
|
46
46
|
### :_hide_interface_
|
|
47
|
-
|
|
47
|
+
Hide an interface by name.
|
|
48
48
|
|
|
49
49
|
Vedeu.trigger(:_hide_interface_, name)
|
|
50
50
|
Vedeu.hide_interface(name)
|
|
@@ -64,7 +64,7 @@ Showing a group of interfaces.
|
|
|
64
64
|
Vedeu.show_group(name)
|
|
65
65
|
|
|
66
66
|
### :_show_interface_
|
|
67
|
-
|
|
67
|
+
Show an interface by name.
|
|
68
68
|
|
|
69
69
|
Vedeu.trigger(:_show_interface_, name)
|
|
70
70
|
Vedeu.show_interface(name)
|
data/docs/geometry.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# @title Vedeu Geometry
|
|
2
|
+
# Vedeu Geometry
|
|
3
|
+
|
|
4
|
+
Geometry defines the shape of an interface or view. It determines
|
|
5
|
+
where an interface or view will display within the terminal space.
|
|
6
|
+
Terminal geometry starts at position (1, 1), which is the top left
|
|
7
|
+
of the terminal.
|
|
8
|
+
|
|
9
|
+
- It has a name. This name associates it with an
|
|
10
|
+
{file:docs/interface.md Interface}.
|
|
11
|
+
- It has dimensions- a width and a height.
|
|
12
|
+
- The 'width' is the number of characters wide, and is defined as
|
|
13
|
+
being ('xn' - 'x') or ('x' + 'width').
|
|
14
|
+
- The 'height' is the number of lines tall, and is defined as
|
|
15
|
+
being ('yn' - 'y') or ('y' + 'height').
|
|
16
|
+
- 'x' refers to the starting coordinate of the horizontal axis.
|
|
17
|
+
- 'y' refers to the starting coordinate of the vertical axis.
|
|
18
|
+
- 'xn' refers to the ending coordinate of the horizontal axis.
|
|
19
|
+
- 'yn' refers to the ending coordinate of the vertical axis.
|
|
20
|
+
- Using 'xn' and 'yn' is optional, as is 'width' and 'height'. In
|
|
21
|
+
their absence, Vedeu will extend the width from 'x' to the right
|
|
22
|
+
edge of the terminal, likewise the height from the 'y' to the
|
|
23
|
+
bottom edge of the terminal.
|
|
24
|
+
- Geometry can be maximised- to use all the available terminal space.
|
|
25
|
+
- It can also be unmaximised- to return to the pre-defined dimensions
|
|
26
|
+
as mentioned above.
|
|
27
|
+
- Geometry like a {file:docs/cursorr.md} Cursor, via events can be
|
|
28
|
+
moved; left, right, up or down.
|
data/docs/group.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# @title Vedeu Groups
|
|
2
|
+
# Vedeu Groups
|
|
3
|
+
|
|
4
|
+
Vedeu allows you to create collections of interfaces, these are called
|
|
5
|
+
Groups.
|
|
6
|
+
|
|
7
|
+
- They have a name, which means you can control a collection of
|
|
8
|
+
interfaces by this name.
|
|
9
|
+
- Interfaces which are part of a group are the members of that group.
|
|
10
|
+
- It is generally wise not to have interfaces which are members of
|
|
11
|
+
multiple groups.
|
|
12
|
+
- They can be visible or invisible, this affects all of the members of
|
|
13
|
+
the group.
|
data/docs/interfaces.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# @title Vedeu Interfaces
|
|
2
|
+
# Vedeu Interfaces
|
|
3
|
+
|
|
4
|
+
Think of interfaces as being discrete sections of the terminal space.
|
|
5
|
+
|
|
6
|
+
- It has a name, which all other aspects of Vedeu will be related.
|
|
7
|
+
- It has a size, in terms of a width and height, determined by
|
|
8
|
+
{file:docs/geometry.md Geometry}.
|
|
9
|
+
- It can have a {file:docs/border.md} Border.
|
|
10
|
+
- It can be part of a {file:docs/group.md Group}.
|
|
11
|
+
- An interface is empty unless it has an associated
|
|
12
|
+
{file:docs/view.md View}.
|
|
13
|
+
- It can have a default background and foreground colour which you
|
|
14
|
+
can later override with the view.
|
|
15
|
+
- It can also have a default style, which again, can be overriden if
|
|
16
|
+
you wish.
|
|
17
|
+
- It can be visible or invisible, even independently of the group
|
|
18
|
+
you have assigned them to. By default, all interfaces are invisible
|
|
19
|
+
unless you specifically define them to be visible.
|
|
20
|
+
- Interfaces can move or resize on the screen by controlling its
|
|
21
|
+
Geometry or if the terminal change dimensions.
|
data/docs/view.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @title Vedeu Views
|
|
2
|
+
# Vedeu Views
|
|
3
|
+
|
|
4
|
+
Each interface defined in Vedeu will have an associated (by name, of
|
|
5
|
+
course) view. This view will contain that which is visible within the
|
|
6
|
+
interface and is determined by the position of the cursor associated
|
|
7
|
+
with the interface.
|
|
8
|
+
|
|
9
|
+
- A view is made up of lines, made up of characters.
|
|
10
|
+
- Lines can have their own background, foreground and styles.
|
|
11
|
+
- A line can also be made up of streams, a stream itself having its
|
|
12
|
+
own background, foreground and styles.
|
|
13
|
+
- Lines and streams are made up of characters- again, each with their
|
|
14
|
+
own background, foreground and styles.
|
|
15
|
+
|
|
16
|
+
Views can be requested to be drawn immediately on construction, or
|
|
17
|
+
added to a {file:docs/buffer.md Buffer}.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'vedeu'
|
|
5
|
+
|
|
6
|
+
# If you have cloned this repository from GitHub, you can run this example:
|
|
7
|
+
#
|
|
8
|
+
# bundle exec ./examples/demo_groups.rb
|
|
9
|
+
#
|
|
10
|
+
class DemoGroupsApp
|
|
11
|
+
|
|
12
|
+
Vedeu.bind(:_initialize_) {
|
|
13
|
+
Vedeu.trigger(:_show_group_, :fruit)
|
|
14
|
+
Vedeu.trigger(:_refresh_group_, :fruit)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
Vedeu.configure do
|
|
18
|
+
log '/tmp/demo_groups.log'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
Vedeu.interface :apple do
|
|
22
|
+
border!
|
|
23
|
+
foreground '#ffffff'
|
|
24
|
+
geometry do
|
|
25
|
+
width 10
|
|
26
|
+
height 4
|
|
27
|
+
x 3
|
|
28
|
+
y 3
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
group :fruit
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Vedeu.interface :banana do
|
|
35
|
+
border!
|
|
36
|
+
foreground '#ffffff'
|
|
37
|
+
geometry do
|
|
38
|
+
width 10
|
|
39
|
+
height 4
|
|
40
|
+
x 15
|
|
41
|
+
y 3
|
|
42
|
+
end
|
|
43
|
+
group :fruit
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Vedeu.interface :carrot do
|
|
47
|
+
border!
|
|
48
|
+
foreground '#ffffff'
|
|
49
|
+
geometry do
|
|
50
|
+
width 10
|
|
51
|
+
height 4
|
|
52
|
+
x 4
|
|
53
|
+
y 4
|
|
54
|
+
end
|
|
55
|
+
group :vegetable
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
Vedeu.interface :dill do
|
|
59
|
+
border!
|
|
60
|
+
foreground '#ffffff'
|
|
61
|
+
geometry do
|
|
62
|
+
width 10
|
|
63
|
+
height 4
|
|
64
|
+
x 16
|
|
65
|
+
y 4
|
|
66
|
+
end
|
|
67
|
+
group :vegetable
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
Vedeu.keymap '_global_' do
|
|
71
|
+
key('f') {
|
|
72
|
+
Vedeu.trigger(:_hide_group_, :vegetable)
|
|
73
|
+
Vedeu.trigger(:_show_group_, :fruit)
|
|
74
|
+
}
|
|
75
|
+
key('q') { Vedeu.exit }
|
|
76
|
+
key('v') {
|
|
77
|
+
Vedeu.trigger(:_hide_group_, :fruit)
|
|
78
|
+
Vedeu.trigger(:_show_group_, :vegetable)
|
|
79
|
+
}
|
|
80
|
+
key(:tab) { Vedeu.focus_next }
|
|
81
|
+
key(:shift_tab) { Vedeu.focus_previous }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
Vedeu.views do
|
|
85
|
+
view(:apple) do
|
|
86
|
+
line 'apple'
|
|
87
|
+
end
|
|
88
|
+
view(:banana) do
|
|
89
|
+
line 'banana'
|
|
90
|
+
end
|
|
91
|
+
view(:carrot) do
|
|
92
|
+
line 'carrot'
|
|
93
|
+
end
|
|
94
|
+
view(:dill) do
|
|
95
|
+
line 'dill'
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def self.start(argv = ARGV)
|
|
100
|
+
Vedeu::Launcher.execute!(argv)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end # DemoGroupsApp
|
|
104
|
+
|
|
105
|
+
DemoGroupsApp.start
|
|
@@ -32,8 +32,10 @@ module Vedeu
|
|
|
32
32
|
# @return [TrueClass]
|
|
33
33
|
def setup_aliases!
|
|
34
34
|
Vedeu.bind_alias(:_cursor_hide_, :_hide_cursor_)
|
|
35
|
-
|
|
36
35
|
Vedeu.bind_alias(:_cursor_show_, :_show_cursor_)
|
|
36
|
+
Vedeu.bind_alias(:_hide_view_, :_hide_interface_)
|
|
37
|
+
Vedeu.bind_alias(:_show_view_, :_show_interface_)
|
|
38
|
+
Vedeu.bind_alias(:_toggle_view_, :_toggle_interface_)
|
|
37
39
|
end
|
|
38
40
|
|
|
39
41
|
private
|
data/lib/vedeu/dsl/line.rb
CHANGED
|
@@ -40,10 +40,11 @@ module Vedeu
|
|
|
40
40
|
#
|
|
41
41
|
# Vedeu.renders do
|
|
42
42
|
# view :my_interface do
|
|
43
|
-
#
|
|
44
|
-
#
|
|
43
|
+
# lines do
|
|
44
|
+
# line 'some text...'
|
|
45
|
+
# # ... some code
|
|
45
46
|
#
|
|
46
|
-
#
|
|
47
|
+
# line 'some more text...'
|
|
47
48
|
# # ... some code
|
|
48
49
|
# end
|
|
49
50
|
# end
|
|
@@ -76,13 +77,15 @@ module Vedeu
|
|
|
76
77
|
#
|
|
77
78
|
# Vedeu.renders do
|
|
78
79
|
# view :my_interface do
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
80
|
+
# lines do
|
|
81
|
+
# line do
|
|
82
|
+
# streams do
|
|
83
|
+
# # ... some code
|
|
84
|
+
# end
|
|
83
85
|
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
+
# stream do
|
|
87
|
+
# # ... some code
|
|
88
|
+
# end
|
|
86
89
|
# end
|
|
87
90
|
# end
|
|
88
91
|
# end
|
data/lib/vedeu/dsl/view.rb
CHANGED
data/lib/vedeu/groups/group.rb
CHANGED
|
@@ -82,11 +82,12 @@ module Vedeu
|
|
|
82
82
|
|
|
83
83
|
# Show the named interface.
|
|
84
84
|
#
|
|
85
|
-
# Will
|
|
86
|
-
# visible, it will be
|
|
87
|
-
# interface, the ':
|
|
88
|
-
#
|
|
89
|
-
#
|
|
85
|
+
# Will show the named interface. If the interface is currently
|
|
86
|
+
# visible, it will be refreshed- showing any new content
|
|
87
|
+
# available. To hide the interface, the ':_hide_interface_'
|
|
88
|
+
# event should be triggered.
|
|
89
|
+
# Triggering the ':_show_group_' event to which this named
|
|
90
|
+
# interface belongs will also show the interface.
|
|
90
91
|
#
|
|
91
92
|
# @example
|
|
92
93
|
# Vedeu.trigger(:_show_interface_, name)
|
|
@@ -115,7 +116,7 @@ module Vedeu
|
|
|
115
116
|
parent: nil,
|
|
116
117
|
repository: Vedeu.interfaces,
|
|
117
118
|
style: :normal,
|
|
118
|
-
visible:
|
|
119
|
+
visible: false,
|
|
119
120
|
zindex: 0,
|
|
120
121
|
}
|
|
121
122
|
end
|
data/lib/vedeu/models/page.rb
CHANGED
|
@@ -26,15 +26,8 @@ module Vedeu
|
|
|
26
26
|
Vedeu::Models::Page.new([Vedeu::Models::Row.coerce(value)])
|
|
27
27
|
|
|
28
28
|
elsif value.is_a?(Array)
|
|
29
|
-
values = value.map
|
|
30
|
-
if v.is_a?(Vedeu::Models::Row)
|
|
31
|
-
v
|
|
29
|
+
values = value.map { |v| Vedeu::Models::Row.coerce(v) }
|
|
32
30
|
|
|
33
|
-
else
|
|
34
|
-
Vedeu::Models::Row.coerce(v)
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
31
|
Vedeu::Models::Page.new(values)
|
|
39
32
|
|
|
40
33
|
else
|
data/lib/vedeu/version.rb
CHANGED
|
@@ -25,6 +25,9 @@ module Vedeu
|
|
|
25
25
|
it { Vedeu.bound?(:_hide_interface_).must_equal(true) }
|
|
26
26
|
it { Vedeu.bound?(:_show_interface_).must_equal(true) }
|
|
27
27
|
it { Vedeu.bound?(:_toggle_interface_).must_equal(true) }
|
|
28
|
+
it { Vedeu.bound?(:_hide_view_).must_equal(true) }
|
|
29
|
+
it { Vedeu.bound?(:_show_view_).must_equal(true) }
|
|
30
|
+
it { Vedeu.bound?(:_toggle_view_).must_equal(true) }
|
|
28
31
|
end
|
|
29
32
|
|
|
30
33
|
# describe ':_some_event_' do
|
|
@@ -24,9 +24,25 @@ module Vedeu
|
|
|
24
24
|
subject { described.by_name(_name) }
|
|
25
25
|
|
|
26
26
|
context 'when Vedeu is not yet ready' do
|
|
27
|
+
let(:buffer) { mock(render: '') }
|
|
28
|
+
|
|
29
|
+
before do
|
|
30
|
+
Vedeu.stubs(:trigger).with(:_clear_view_content_, _name)
|
|
31
|
+
Vedeu.buffers.expects(:by_name).with(_name).returns(buffer)
|
|
32
|
+
Vedeu.stubs(:trigger).with(:_refresh_border_, _name)
|
|
33
|
+
end
|
|
34
|
+
|
|
27
35
|
let(:ready) { false }
|
|
28
36
|
|
|
29
|
-
it {
|
|
37
|
+
it {
|
|
38
|
+
Vedeu.expects(:trigger).with(:_clear_view_content_, _name)
|
|
39
|
+
subject
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
it {
|
|
43
|
+
Vedeu.expects(:trigger).with(:_refresh_border_, _name)
|
|
44
|
+
subject
|
|
45
|
+
}
|
|
30
46
|
end
|
|
31
47
|
|
|
32
48
|
context 'when Vedeu is ready' do
|
data/vedeu.gemspec
CHANGED
|
@@ -28,12 +28,14 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.add_development_dependency 'mocha', '1.1.0'
|
|
29
29
|
spec.add_development_dependency 'pry', '0.10.2'
|
|
30
30
|
spec.add_development_dependency 'rubocop', '0.34.2'
|
|
31
|
-
spec.add_development_dependency 'ruby-prof', '0.15.8'
|
|
32
31
|
spec.add_development_dependency 'simplecov', '0.10.0'
|
|
33
32
|
spec.add_development_dependency 'simplecov-console', '0.2.0'
|
|
34
33
|
spec.add_development_dependency 'yard', '0.8.7.6'
|
|
35
34
|
|
|
36
35
|
spec.add_dependency 'bundler', '~> 1.10'
|
|
37
36
|
spec.add_dependency 'rake', '~> 10.4'
|
|
37
|
+
spec.add_dependency 'ruby-prof', '0.15.8'
|
|
38
|
+
spec.add_dependency 'thor', '0.19.1'
|
|
38
39
|
spec.add_dependency 'vedeu_cli', '0.0.7'
|
|
40
|
+
|
|
39
41
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vedeu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.6.
|
|
4
|
+
version: 0.6.27
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gavin Laking
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-10-
|
|
11
|
+
date: 2015-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: guard
|
|
@@ -122,20 +122,6 @@ dependencies:
|
|
|
122
122
|
- - '='
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: 0.34.2
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: ruby-prof
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - '='
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.15.8
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - '='
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.15.8
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
126
|
name: simplecov
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -206,6 +192,34 @@ dependencies:
|
|
|
206
192
|
- - "~>"
|
|
207
193
|
- !ruby/object:Gem::Version
|
|
208
194
|
version: '10.4'
|
|
195
|
+
- !ruby/object:Gem::Dependency
|
|
196
|
+
name: ruby-prof
|
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - '='
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: 0.15.8
|
|
202
|
+
type: :runtime
|
|
203
|
+
prerelease: false
|
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
+
requirements:
|
|
206
|
+
- - '='
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: 0.15.8
|
|
209
|
+
- !ruby/object:Gem::Dependency
|
|
210
|
+
name: thor
|
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
|
212
|
+
requirements:
|
|
213
|
+
- - '='
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: 0.19.1
|
|
216
|
+
type: :runtime
|
|
217
|
+
prerelease: false
|
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - '='
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: 0.19.1
|
|
209
223
|
- !ruby/object:Gem::Dependency
|
|
210
224
|
name: vedeu_cli
|
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -249,7 +263,10 @@ files:
|
|
|
249
263
|
- bin/vedeu_test
|
|
250
264
|
- config/rubocop_enabled.yml
|
|
251
265
|
- docs/api.md
|
|
266
|
+
- docs/border.md
|
|
267
|
+
- docs/buffer.md
|
|
252
268
|
- docs/configuration.md
|
|
269
|
+
- docs/cursor.md
|
|
253
270
|
- docs/dsl.md
|
|
254
271
|
- docs/events.md
|
|
255
272
|
- docs/events/application.md
|
|
@@ -262,8 +279,13 @@ files:
|
|
|
262
279
|
- docs/events/system.md
|
|
263
280
|
- docs/events/view.md
|
|
264
281
|
- docs/events/visibility.md
|
|
282
|
+
- docs/geometry.md
|
|
265
283
|
- docs/getting_started.md
|
|
284
|
+
- docs/group.md
|
|
285
|
+
- docs/interfaces.md
|
|
266
286
|
- docs/object_graph.md
|
|
287
|
+
- docs/view.md
|
|
288
|
+
- examples/demo_groups.rb
|
|
267
289
|
- examples/hello_worlds.rb
|
|
268
290
|
- lib/vedeu.rb
|
|
269
291
|
- lib/vedeu/all.rb
|