vedeu 0.4.8 → 0.4.9

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
  SHA1:
3
- metadata.gz: 7649a91c05398be50b8403bf37f0f2f46fbd0317
4
- data.tar.gz: 2b8f063515e7ae529fc2877ebcf482d821cebbc0
3
+ metadata.gz: 2f8e55b96180371a74727bb5684f829aea4fb3ae
4
+ data.tar.gz: d3bbd55216ffff82ebf2007cd7616228be86e155
5
5
  SHA512:
6
- metadata.gz: 00be70e455d52864393e79a59f678b3d3d308370eadba24d74cf1ce216b4c84c25859cce8ae33ce43d151bd0173b8c7f555fe4e0455c916a0fa33ed671077b3a
7
- data.tar.gz: 2d82fcc1f9ee603023b99c4d1b4a7bde1c9b02578bb68feeac24a1fdaf6e41ddb98845c8336a883a04be5ec3d40fbed5de3202e50449c3052ea9d36895cdb5e7
6
+ metadata.gz: 52b9ca57b1f4258a516e236a49e42840665bb4f40352e8d7b562de206eb1a23340fe4be40acfe02d41a28618db3e36a8841964d2a1fa2c3108bd841bdb6aa29f
7
+ data.tar.gz: b5caa9c02529b83537e2894d4fbc287beedef7c1cbcd7de1bc5d2eafb178d225ec9709c14fda5a8872bd2760f04c3df0ed2a95051e8fc1a8ebe1002506ff8b4e
data/README.md CHANGED
@@ -176,7 +176,9 @@ Pull requests are very welcome! Please try to follow these simple rules if appli
176
176
  * Update the [README](https://github.com/gavinlaking/vedeu/blob/master/README.md).
177
177
  * Please **do not change** the version number.
178
178
 
179
- Any branch on the repository that is not `master` is probably experimental; do not rely on anything in these branches.
179
+ Any branch on the repository that is not `master` is probably experimental; do not rely on anything in these branches. Typically, `twerks` will be merged into `master` before a release,
180
+ and branches prefixed with `spike/` are me playing with ideas.
181
+
180
182
 
181
183
  ### General contribution help
182
184
 
@@ -0,0 +1,14 @@
1
+ ## Producing an object graph of Vedeu
2
+
3
+ Sometimes I find looking at the project as a graph helps me to understand the
4
+ relationship between the various objects. To achieve this, I use Yard's graph
5
+ options. If this sort of thing floats your boat too, and you have the
6
+ appropriate software installed:
7
+
8
+ ```shell
9
+ yard graph --full --dependencies --private --protected --dot --file vedeu.dot
10
+
11
+ dot -Tpdf vedeu.dot -o vedeu.pdf
12
+ ```
13
+
14
+ Cool stuff.
@@ -28,7 +28,7 @@ class VedeuBordersApp
28
28
 
29
29
  interface 'border_off' do
30
30
  geometry do
31
- x 13
31
+ x 14
32
32
  y 2
33
33
  height 4
34
34
  width 10
@@ -38,7 +38,7 @@ class VedeuBordersApp
38
38
 
39
39
  interface 'no_top' do
40
40
  geometry do
41
- x 24
41
+ x 26
42
42
  y 2
43
43
  height 4
44
44
  width 10
@@ -48,7 +48,7 @@ class VedeuBordersApp
48
48
 
49
49
  interface 'no_bottom' do
50
50
  geometry do
51
- x 35
51
+ x 38
52
52
  y 2
53
53
  height 4
54
54
  width 10
@@ -58,7 +58,7 @@ class VedeuBordersApp
58
58
 
59
59
  interface 'no_left' do
60
60
  geometry do
61
- x 46
61
+ x 50
62
62
  y 2
63
63
  height 4
64
64
  width 10
@@ -68,7 +68,7 @@ class VedeuBordersApp
68
68
 
69
69
  interface 'no_right' do
70
70
  geometry do
71
- x 57
71
+ x 62
72
72
  y 2
73
73
  height 4
74
74
  width 10
@@ -79,7 +79,7 @@ class VedeuBordersApp
79
79
  interface 'custom_corners' do
80
80
  geometry do
81
81
  x 2
82
- y 7
82
+ y 8
83
83
  height 4
84
84
  width 10
85
85
  end
@@ -88,8 +88,8 @@ class VedeuBordersApp
88
88
 
89
89
  interface 'custom_sides' do
90
90
  geometry do
91
- x 13
92
- y 7
91
+ x 14
92
+ y 8
93
93
  height 4
94
94
  width 10
95
95
  end
@@ -98,8 +98,8 @@ class VedeuBordersApp
98
98
 
99
99
  interface 'only_top' do
100
100
  geometry do
101
- x 24
102
- y 7
101
+ x 26
102
+ y 8
103
103
  height 4
104
104
  width 10
105
105
  end
@@ -108,8 +108,8 @@ class VedeuBordersApp
108
108
 
109
109
  interface 'only_bottom' do
110
110
  geometry do
111
- x 35
112
- y 7
111
+ x 38
112
+ y 8
113
113
  height 4
114
114
  width 10
115
115
  end
@@ -118,8 +118,8 @@ class VedeuBordersApp
118
118
 
119
119
  interface 'only_left' do
120
120
  geometry do
121
- x 46
122
- y 7
121
+ x 50
122
+ y 8
123
123
  height 4
124
124
  width 10
125
125
  end
@@ -128,8 +128,8 @@ class VedeuBordersApp
128
128
 
129
129
  interface 'only_right' do
130
130
  geometry do
131
- x 57
132
- y 7
131
+ x 62
132
+ y 8
133
133
  height 4
134
134
  width 10
135
135
  end
@@ -139,7 +139,7 @@ class VedeuBordersApp
139
139
  interface 'custom_colour' do
140
140
  geometry do
141
141
  x 2
142
- y 12
142
+ y 14
143
143
  height 4
144
144
  width 10
145
145
  end
@@ -148,8 +148,8 @@ class VedeuBordersApp
148
148
 
149
149
  interface 'negative' do
150
150
  geometry do
151
- x 13
152
- y 12
151
+ x 14
152
+ y 14
153
153
  height 4
154
154
  width 10
155
155
  end
data/lib/vedeu/api.rb CHANGED
@@ -14,6 +14,19 @@ module Vedeu
14
14
  # Provides the API to Vedeu. Methods therein, and classes belonging to this
15
15
  # module expose Vedeu's core functionality.
16
16
  #
17
+ # These methods are used in a variety of ways, sometimes in combination:
18
+ #
19
+ # # with parameters
20
+ # Vedeu.method_name(*params)
21
+ #
22
+ # # with a block
23
+ # Vedeu.method_name(*params) do
24
+ # # ...
25
+ # end
26
+ #
27
+ # # with other methods
28
+ # Vedeu.method_name.other_method
29
+ #
17
30
  # @api public
18
31
  #
19
32
  module API
@@ -21,35 +34,134 @@ module Vedeu
21
34
  extend Forwardable
22
35
  extend self
23
36
 
24
- def_delegators Vedeu::Borders, :borders
25
- def_delegators Vedeu::Buffers, :buffers
26
- def_delegators Vedeu::Canvas, :canvas
27
- def_delegators Vedeu::Cursors, :cursors
28
- def_delegators Vedeu::Cursors, :cursor
37
+ # @!method borders
38
+ # @see Vedeu::Borders.borders
39
+ def_delegators Vedeu::Borders, :borders
40
+
41
+ # @!method buffers
42
+ # @see Vedeu::Buffers.buffers
43
+ def_delegators Vedeu::Buffers, :buffers
44
+
45
+ # @!method canvas
46
+ # @see Vedeu::Canvas.canvas
47
+ def_delegators Vedeu::Canvas, :canvas
48
+
49
+ # @!method cursors
50
+ # @see Vedeu::Cursors.cursors
51
+ def_delegators Vedeu::Cursors, :cursors
52
+
53
+ # @!method cursor
54
+ # @see Vedeu::Cursors.cursor
55
+ def_delegators Vedeu::Cursors, :cursor
56
+
57
+ # @!method events
58
+ # @see Vedeu::EventsRepository.events
29
59
  def_delegators Vedeu::EventsRepository, :events
30
- def_delegators Vedeu::Geometries, :geometries
31
- def_delegators Vedeu::Groups, :groups
60
+
61
+ # @!method geometries
62
+ # @see Vedeu::Geometries.geometries
63
+ def_delegators Vedeu::Geometries, :geometries
64
+
65
+ # @!method groups
66
+ # @see Vedeu::Groups.groups
67
+ def_delegators Vedeu::Groups, :groups
68
+
69
+ # @!method interfaces
70
+ # @see Vedeu::InterfacesRepository.interfaces
32
71
  def_delegators Vedeu::InterfacesRepository, :interfaces
33
72
 
34
- def_delegators Vedeu::Keymaps, :keymaps
35
- def_delegators Vedeu::Mapper, :keypress
36
- def_delegators Vedeu::Menus, :menus
73
+ # @!method keymaps
74
+ # @see Vedeu::Keymaps.keymaps
75
+ def_delegators Vedeu::Keymaps, :keymaps
37
76
 
38
- def_delegators Vedeu::Event, :bind, :trigger, :unbind
39
- def_delegators Vedeu::Configuration, :configure, :configuration
40
- def_delegators Vedeu::DSL::Border, :border
77
+ # @!method keypress
78
+ # @see Vedeu::Mapper.keypress
79
+ def_delegators Vedeu::Mapper, :keypress
80
+
81
+ # @!method menus
82
+ # @see Vedeu::Menus.menus
83
+ def_delegators Vedeu::Menus, :menus
84
+
85
+ # @!method bind
86
+ # @see Vedeu::Event.bind
87
+ # @!method trigger
88
+ # @see Vedeu::Event.trigger
89
+ # @!method unbind
90
+ # @see Vedeu::Event.unbind
91
+ def_delegators Vedeu::Event, :bind,
92
+ :trigger,
93
+ :unbind
94
+
95
+ # @!method configure
96
+ # @see Vedeu::Configuration.configure
97
+ # @!method configuration
98
+ # @see Vedeu::Configuration.configuration
99
+ def_delegators Vedeu::Configuration, :configure,
100
+ :configuration
101
+
102
+ # @!method border
103
+ # @see Vedeu::DSL::Border.border
104
+ def_delegators Vedeu::DSL::Border, :border
105
+
106
+ # @!method geometry
107
+ # @see Vedeu::DSL::Geometry.geometry
41
108
  def_delegators Vedeu::DSL::Geometry, :geometry
42
- def_delegators Vedeu::DSL::Keymap, :keymap
43
- def_delegators Vedeu::DSL::Group, :group
44
- def_delegators Vedeu::DSL::Use, :use
45
- def_delegators Vedeu::DSL::View, :interface, :renders, :views
46
109
 
47
- def_delegators Vedeu::Focus, :focus, :focus_by_name, :focussed?,
48
- :focus_next, :focus_previous
110
+ # @!method keymap
111
+ # @see Vedeu::DSL::Keymap.keymap
112
+ def_delegators Vedeu::DSL::Keymap, :keymap
113
+
114
+ # @!method group
115
+ # @see Vedeu::DSL::Group.group
116
+ def_delegators Vedeu::DSL::Group, :group
117
+
118
+ # @!method use
119
+ # @see Vedeu::DSL::Use#use
120
+ def_delegators Vedeu::DSL::Use, :use
121
+
122
+ # @!method interface
123
+ # @see Vedeu::DSL::View.interface
124
+ # @!method renders
125
+ # @see Vedeu::DSL::View.renders
126
+ # @!method views
127
+ # @see Vedeu::DSL::View.views
128
+ def_delegators Vedeu::DSL::View, :interface,
129
+ :renders,
130
+ :views
131
+
132
+ # @!method focus
133
+ # @see Vedeu::Focus#focus
134
+ # @!method focus_by_name
135
+ # @see Vedeu::Focus#focus_by_name
136
+ # @!method focussed?
137
+ # @see Vedeu::Focus#focussed?
138
+ # @!method focus_next
139
+ # @see Vedeu::Focus#focus_next
140
+ # @!method focus_previous
141
+ # @see Vedeu::Focus#focus_previous
142
+ def_delegators Vedeu::Focus, :focus,
143
+ :focus_by_name,
144
+ :focussed?,
145
+ :focus_next,
146
+ :focus_previous
147
+
148
+ # @!method log
149
+ # @see Vedeu::Log.log
150
+ def_delegators Vedeu::Log, :log
151
+
152
+ # @!method menu
153
+ # @see Vedeu::Menu.menu
154
+ def_delegators Vedeu::Menu, :menu
49
155
 
50
- def_delegators Vedeu::Log, :log
51
- def_delegators Vedeu::Menu, :menu
52
- def_delegators Vedeu::Terminal, :height, :width, :resize
156
+ # @!method height
157
+ # @see Vedeu::Terminal#height
158
+ # @!method width
159
+ # @see Vedeu::Terminal#width
160
+ # @!method resize
161
+ # @see Vedeu::Terminal#resize
162
+ def_delegators Vedeu::Terminal, :height,
163
+ :width,
164
+ :resize
53
165
 
54
166
  end # API
55
167
 
@@ -5,25 +5,27 @@ module Vedeu
5
5
  # The Buffer object represents the states of display for an interface. The
6
6
  # states are 'front', 'back' and 'previous'.
7
7
  #
8
- # - 'front': The currently displayed buffer; contains the content which was
9
- # last output.
10
- # - 'back': The next buffer to be displayed; contains the content which
11
- # will be shown on next refresh.
12
- # - 'previous': The previous buffer which was displayed; contains the content
13
- # that was shown before 'front'.
14
- #
15
8
  class Buffer
16
9
 
17
10
  include Vedeu::Model
18
11
 
12
+ # The next buffer to be displayed; contains the content which will be shown
13
+ # on next refresh.
14
+ #
19
15
  # @!attribute [rw] back
20
16
  # @return [Interface]
21
17
  attr_accessor :back
22
18
 
19
+ # The currently displayed buffer, contains the content which was last
20
+ # output.
21
+ #
23
22
  # @!attribute [rw] front
24
23
  # @return [Interface]
25
24
  attr_accessor :front
26
25
 
26
+ # The previous buffer which was displayed; contains the content that was
27
+ # shown before 'front'.
28
+ #
27
29
  # @!attribute [rw] previous
28
30
  # @return [Interface]
29
31
  attr_accessor :previous
@@ -32,7 +34,8 @@ module Vedeu
32
34
  # @return [String]
33
35
  attr_reader :name
34
36
 
35
- # Return a new instance of Buffer.
37
+ # Return a new instance of Buffer. Generally a Buffer is initialized with
38
+ # only a 'name' and 'back' parameter.
36
39
  #
37
40
  # @param name [String] The name of the interface for which the buffer
38
41
  # belongs.
@@ -11,7 +11,8 @@ module Vedeu
11
11
 
12
12
  extend Forwardable
13
13
 
14
- def_delegators :state, :visible?, :invisible?
14
+ def_delegators :state, :visible?,
15
+ :invisible?
15
16
 
16
17
  include Vedeu::Model
17
18
 
@@ -17,7 +17,7 @@ module Vedeu
17
17
  # @note The last defined background colour for a particular interface,
18
18
  # line or stream overrides previously defined entries in the same block.
19
19
  #
20
- # @param value [String]
20
+ # @param value [String] A HTML/CSS value.
21
21
  #
22
22
  # @example
23
23
  # interface 'my_interface' do
@@ -5,22 +5,22 @@ module Vedeu
5
5
  class Area
6
6
 
7
7
  # @!attribute [r] y
8
- # @return [Fixnum]
8
+ # @return [Fixnum] Returns the top coordinate of the interface.
9
9
  attr_reader :y
10
10
  alias_method :top, :y
11
11
 
12
12
  # @!attribute [r] yn
13
- # @return [Fixnum]
13
+ # @return [Fixnum] Returns the bottom coordinate of the interface.
14
14
  attr_reader :yn
15
15
  alias_method :bottom, :yn
16
16
 
17
17
  # @!attribute [r] x
18
- # @return [Fixnum]
18
+ # @return [Fixnum] Returns the left coordinate of the interface.
19
19
  attr_reader :x
20
20
  alias_method :left, :x
21
21
 
22
22
  # @!attribute [r] xn
23
- # @return [Fixnum]
23
+ # @return [Fixnum] Returns the right coordinate of the interface.
24
24
  attr_reader :xn
25
25
  alias_method :right, :xn
26
26
 
@@ -53,12 +53,6 @@ module Vedeu
53
53
  @y, @yn, @x, @xn = y, yn, x, xn
54
54
  end
55
55
 
56
- # @param other [Vedeu::Area]
57
- # @return [Boolean]
58
- def ==(other)
59
- eql?(other)
60
- end
61
-
62
56
  # @param other [Vedeu::Area]
63
57
  # @return [Boolean]
64
58
  def eql?(other)
@@ -68,6 +62,7 @@ module Vedeu
68
62
  x == other.x &&
69
63
  xn == other.xn
70
64
  end
65
+ alias_method :==, :eql?
71
66
 
72
67
  # @return [Array<Fixnum>]
73
68
  def centre
@@ -76,12 +71,22 @@ module Vedeu
76
71
 
77
72
  # @return [Fixnum]
78
73
  def centre_y
79
- ((yn - y) / 2) + y
74
+ (height / 2) + y
80
75
  end
81
76
 
82
77
  # @return [Fixnum]
83
78
  def centre_x
84
- ((xn - x) / 2) + x
79
+ (width / 2) + x
80
+ end
81
+
82
+ # @return [Fixnum]
83
+ def height
84
+ (y..yn).size
85
+ end
86
+
87
+ # @return [Fixnum]
88
+ def width
89
+ (x..xn).size
85
90
  end
86
91
 
87
92
  # Returns the row above the top by default.
@@ -90,8 +95,8 @@ module Vedeu
90
95
  # `top` / `y` is 4.
91
96
  #
92
97
  # north # => 3
93
- # north(2) # => 2
94
- # north(-4) # => 8
98
+ # north(2) # => 2 (positive goes north)
99
+ # north(-4) # => 8 (negative goes south)
95
100
  #
96
101
  # @param offset [Fixnum]
97
102
  # @return [Fixnum]
@@ -105,8 +110,8 @@ module Vedeu
105
110
  # `right` / `xn` is 19.
106
111
  #
107
112
  # east # => 20
108
- # east(2) # => 21
109
- # east(-4) # => 15
113
+ # east(2) # => 21 (positive goes east)
114
+ # east(-4) # => 15 (negative goes west)
110
115
  #
111
116
  # @param offset [Fixnum]
112
117
  # @return [Fixnum]
@@ -120,8 +125,8 @@ module Vedeu
120
125
  # `bottom` / `yn` is 12.
121
126
  #
122
127
  # south # => 13
123
- # south(2) # => 14
124
- # south(-4) # => 8
128
+ # south(2) # => 14 (positive goes south)
129
+ # south(-4) # => 8 (negative goes north)
125
130
  #
126
131
  # @param offset [Fixnum]
127
132
  # @return [Fixnum]
@@ -135,8 +140,8 @@ module Vedeu
135
140
  # `left` / `x` is 8.
136
141
  #
137
142
  # west # => 7
138
- # west(2) # => 6
139
- # west(-4) # => 12
143
+ # west(2) # => 6 (positive goes west)
144
+ # west(-4) # => 12 (negative goes east)
140
145
  #
141
146
  # @param offset [Fixnum]
142
147
  # @return [Fixnum]