vedeu 0.6.9 → 0.6.10

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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/lib/vedeu/all.rb +3 -3
  4. data/lib/vedeu/api/external.rb +194 -0
  5. data/lib/vedeu/api/internal.rb +173 -0
  6. data/lib/vedeu/application/controller.rb +3 -2
  7. data/lib/vedeu/bindings/application.rb +1 -1
  8. data/lib/vedeu/bindings/drb.rb +2 -3
  9. data/lib/vedeu/bindings/movement.rb +1 -1
  10. data/lib/vedeu/buffers/all.rb +0 -2
  11. data/lib/vedeu/colours/translator.rb +2 -1
  12. data/lib/vedeu/common.rb +4 -2
  13. data/lib/vedeu/configuration/api.rb +1 -1
  14. data/lib/vedeu/configuration/cli.rb +1 -1
  15. data/lib/vedeu/cursors/repository.rb +1 -1
  16. data/lib/vedeu/editor/insert.rb +12 -13
  17. data/lib/vedeu/geometry/position.rb +1 -1
  18. data/lib/vedeu/models/cell.rb +35 -21
  19. data/lib/vedeu/models/escape.rb +18 -1
  20. data/lib/vedeu/models/page.rb +20 -10
  21. data/lib/vedeu/models/row.rb +18 -8
  22. data/lib/vedeu/models/views/char.rb +9 -7
  23. data/lib/vedeu/models/views/view.rb +1 -1
  24. data/lib/vedeu/output/compressor.rb +22 -14
  25. data/lib/vedeu/output/output.rb +1 -10
  26. data/lib/vedeu/output/renderers/escape_sequence.rb +8 -4
  27. data/lib/vedeu/output/renderers/file.rb +7 -23
  28. data/lib/vedeu/output/renderers/html.rb +47 -26
  29. data/lib/vedeu/output/renderers/json.rb +11 -16
  30. data/lib/vedeu/output/renderers/null.rb +1 -1
  31. data/lib/vedeu/output/renderers/renderer_options.rb +2 -1
  32. data/lib/vedeu/output/renderers/terminal.rb +7 -15
  33. data/lib/vedeu/output/renderers/text.rb +1 -1
  34. data/lib/vedeu/output/viewport.rb +154 -143
  35. data/lib/vedeu/repositories/collection.rb +2 -2
  36. data/lib/vedeu/repositories/model.rb +25 -26
  37. data/lib/vedeu/repositories/registerable.rb +9 -8
  38. data/lib/vedeu/repositories/repository.rb +21 -16
  39. data/lib/vedeu/repositories/store.rb +6 -4
  40. data/lib/vedeu/runtime/bootstrap.rb +7 -5
  41. data/lib/vedeu/runtime/main_loop.rb +2 -0
  42. data/lib/vedeu/runtime/router.rb +155 -149
  43. data/lib/vedeu/templating/decoder.rb +8 -5
  44. data/lib/vedeu/templating/encoder.rb +6 -4
  45. data/lib/vedeu/templating/template.rb +2 -2
  46. data/lib/vedeu/templating/view_template.rb +8 -7
  47. data/lib/vedeu/terminal/buffer.rb +132 -0
  48. data/lib/vedeu/terminal/terminal.rb +0 -5
  49. data/lib/vedeu/version.rb +1 -1
  50. data/lib/vedeu.rb +2 -2
  51. data/out_ +50 -0
  52. data/test/lib/vedeu/api/external_test.rb +62 -0
  53. data/test/lib/vedeu/{internal_api_test.rb → api/internal_test.rb} +6 -2
  54. data/test/lib/vedeu/application/controller_test.rb +3 -3
  55. data/test/lib/vedeu/bindings/application_test.rb +2 -2
  56. data/test/lib/vedeu/models/cell_test.rb +48 -17
  57. data/test/lib/vedeu/models/escape_test.rb +29 -7
  58. data/test/lib/vedeu/models/page_test.rb +70 -50
  59. data/test/lib/vedeu/models/row_test.rb +40 -20
  60. data/test/lib/vedeu/output/compressor_test.rb +12 -12
  61. data/test/lib/vedeu/output/output_test.rb +17 -23
  62. data/test/lib/vedeu/output/renderers/escape_sequence_test.rb +15 -11
  63. data/test/lib/vedeu/output/renderers/html_test.rb +66 -68
  64. data/test/lib/vedeu/output/renderers/json_test.rb +36 -83
  65. data/test/lib/vedeu/output/renderers/terminal_test.rb +22 -2
  66. data/test/lib/vedeu/output/viewport_test.rb +201 -197
  67. data/test/lib/vedeu/runtime/router_test.rb +144 -140
  68. data/test/lib/vedeu/terminal/buffer_test.rb +307 -0
  69. data/test/support/examples/material_colours_app.rb +2 -2
  70. data/test/support/templates/html_renderer.vedeu +24 -0
  71. metadata +14 -17
  72. data/lib/vedeu/api.rb +0 -190
  73. data/lib/vedeu/buffers/virtual_buffer.rb +0 -136
  74. data/lib/vedeu/buffers/virtual_buffers.rb +0 -77
  75. data/lib/vedeu/internal_api.rb +0 -173
  76. data/lib/vedeu/terminal/content.rb +0 -88
  77. data/test/lib/vedeu/api_test.rb +0 -58
  78. data/test/lib/vedeu/buffers/virtual_buffer_test.rb +0 -148
  79. data/test/lib/vedeu/buffers/virtual_buffers_test.rb +0 -73
  80. data/test/lib/vedeu/terminal/content_test.rb +0 -108
@@ -1,166 +1,177 @@
1
1
  module Vedeu
2
2
 
3
- # A Viewport is the visible part of the content within an interface.
4
- #
5
- # When a buffer has more lines than the defined height, or more columns than
6
- # the defined width of the interface, the Viewport class provides 'scrolling'
7
- # via the cursor's position.
8
- #
9
- class Viewport
10
-
11
- extend Forwardable
12
-
13
- def_delegators :view,
14
- :lines,
15
- :name,
16
- :visible?
17
-
18
- def_delegators :border,
19
- :height,
20
- :width
21
-
22
- def_delegators :cursor,
23
- :ox,
24
- :oy
25
-
26
- # @param view [Vedeu::Views::View]
27
- # @return [Array<Array<Vedeu::Views::Char>>]
28
- def self.render(view)
29
- new(view).render
30
- end
31
-
32
- # Returns an instance of Vedeu::Viewport.
33
- #
34
- # @param view [Vedeu::Views::View]
35
- # @return [Vedeu::Viewport]
36
- def initialize(view)
37
- @view = view
38
- end
3
+ module Output
39
4
 
40
- # Returns the content for the view.
5
+ # A Viewport is the visible part of the content within an
6
+ # interface.
7
+ #
8
+ # When a buffer has more lines than the defined height, or more
9
+ # columns than the defined width of the interface, this class
10
+ # provides 'scrolling' via the cursor's position.
41
11
  #
42
- # @return [Array<Array<String>>]
43
- def render
44
- return [] unless visible?
12
+ class Viewport
13
+
14
+ extend Forwardable
15
+
16
+ def_delegators :view,
17
+ :lines,
18
+ :name,
19
+ :visible?
20
+
21
+ def_delegators :border,
22
+ :height,
23
+ :width
24
+
25
+ def_delegators :cursor,
26
+ :ox,
27
+ :oy
28
+
29
+ # @param view [Vedeu::Views::View]
30
+ # @return [Array<Array<Vedeu::Views::Char>>]
31
+ def self.render(view)
32
+ new(view).render
33
+ end
34
+
35
+ # Returns an instance of Vedeu::Output::Viewport.
36
+ #
37
+ # @param view [Vedeu::Views::View]
38
+ # @return [Vedeu::Output::Viewport]
39
+ def initialize(view)
40
+ @view = view
41
+ end
45
42
 
46
- Vedeu.timer("Rendering: '#{name}'") do
47
- out = []
43
+ # Returns the content for the view.
44
+ #
45
+ # @return [Array<Array<String>>]
46
+ def render
47
+ return [] unless visible?
48
48
 
49
- show.each_with_index do |line, iy|
50
- line.each_with_index do |column, ix|
51
- column.position = [by + iy, bx + ix]
52
- out << column
49
+ Vedeu.timer("Rendering: '#{name}'") do
50
+ out = []
51
+
52
+ show.each_with_index do |line, iy|
53
+ line.each_with_index do |column, ix|
54
+ column.position = [by + iy, bx + ix]
55
+ out << column
56
+ end
53
57
  end
58
+
59
+ out
54
60
  end
61
+ end
55
62
 
56
- out
63
+ # Returns a string representation of the viewport.
64
+ #
65
+ # @return [String]
66
+ def to_s
67
+ render.map(&:to_s).join("\n")
68
+ end
69
+ alias_method :to_str, :to_s
70
+
71
+ protected
72
+
73
+ # @!attribute [r] view
74
+ # @return [Vedeu::Views::View]
75
+ attr_reader :view
76
+
77
+ private
78
+
79
+ # Returns the visible content for the view.
80
+ #
81
+ # @note If there are no lines of content, we return an empty
82
+ # array. If there are no more columns of content we return a
83
+ # space enclosed in an array; this prevents a weird line
84
+ # hopping bug which occurs when the current line has no more
85
+ # content, but subsequent lines do.
86
+ #
87
+ # @return [Array]
88
+ def show
89
+ (lines[rows] || []).map { |line| (line.chars[columns] || []) }
57
90
  end
58
- end
59
91
 
60
- # Returns a string representation of the viewport.
61
- #
62
- # @return [String]
63
- def to_s
64
- render.map(&:to_s).join("\n")
65
- end
66
- alias_method :to_str, :to_s
92
+ # Using the current cursor's y position, return a range of
93
+ # visible lines.
94
+ #
95
+ # Scrolls the content vertically when the stored cursor's y
96
+ # position for the interface is outside of the visible area.
97
+ #
98
+ # @note
99
+ # The height is reduced by one as #rows is a range of Array
100
+ # elements.
101
+ #
102
+ # @return [Range]
103
+ def rows
104
+ top...(top + height)
105
+ end
67
106
 
68
- protected
107
+ # Using the current cursor's x position, return a range of
108
+ # visible columns.
109
+ #
110
+ # Scrolls the content horizontally when the stored cursor's x
111
+ # position for the interface is outside of the visible area.
112
+ #
113
+ # @note
114
+ # The width is reduced by one as #columns is a range of Array
115
+ # elements.
116
+ #
117
+ # @return [Range]
118
+ def columns
119
+ left...(left + width)
120
+ end
69
121
 
70
- # @!attribute [r] view
71
- # @return [Vedeu::Views::View]
72
- attr_reader :view
122
+ # @return [Fixnum]
123
+ def left
124
+ @left ||= content_offset(ox, width)
125
+ end
73
126
 
74
- private
127
+ # @return [Fixnum]
128
+ def top
129
+ @top ||= content_offset(oy, height)
130
+ end
75
131
 
76
- # Returns the visible content for the view.
77
- #
78
- # @note If there are no lines of content, we return an empty array. If there
79
- # are no more columns of content we return a space enclosed in an array;
80
- # this prevents a weird line hopping bug which occurs when the current
81
- # line has no more content, but subsequent lines do.
82
- #
83
- # @return [Array]
84
- def show
85
- (lines[rows] || []).map { |line| (line.chars[columns] || []) }
86
- end
132
+ # Returns the offset for the content (the number of rows or
133
+ # columns to change the viewport by on either the y or x axis)
134
+ # determined by the offset (the cursor's y or x offset position.
135
+ #
136
+ # @param offset [Fixnum] The cursor's oy or ox values.
137
+ # @param dimension [Fixnum] Either the height or width.
138
+ # @return [Fixnum]
139
+ def content_offset(offset, dimension)
140
+ if offset >= dimension
141
+ offset - dimension
87
142
 
88
- # Using the current cursor's y position, return a range of visible lines.
89
- #
90
- # Scrolls the content vertically when the stored cursor's y position for the
91
- # interface is outside of the visible area.
92
- #
93
- # @note
94
- # The height is reduced by one as #rows is a range of Array elements.
95
- #
96
- # @return [Range]
97
- def rows
98
- top...(top + height)
99
- end
143
+ else
144
+ 0
100
145
 
101
- # Using the current cursor's x position, return a range of visible columns.
102
- #
103
- # Scrolls the content horizontally when the stored cursor's x position for
104
- # the interface is outside of the visible area.
105
- #
106
- # @note
107
- # The width is reduced by one as #columns is a range of Array elements.
108
- #
109
- # @return [Range]
110
- def columns
111
- left...(left + width)
112
- end
113
-
114
- # @return [Fixnum]
115
- def left
116
- @left ||= content_offset(ox, width)
117
- end
118
-
119
- # @return [Fixnum]
120
- def top
121
- @top ||= content_offset(oy, height)
122
- end
123
-
124
- # Returns the offset for the content (the number of rows or columns to
125
- # change the viewport by on either the y or x axis) determined by the offset
126
- # (the cursor's y or x offset position.
127
- #
128
- # @param offset [Fixnum] The cursor's oy or ox values.
129
- # @param dimension [Fixnum] Either the height or width.
130
- # @return [Fixnum]
131
- def content_offset(offset, dimension)
132
- if offset >= dimension
133
- offset - dimension
146
+ end
147
+ end
134
148
 
135
- else
136
- 0
149
+ # Return the border associated with the interface/view we are
150
+ # drawing.
151
+ #
152
+ # @return (see Vedeu::Borders::Repository#by_name)
153
+ def border
154
+ @border ||= Vedeu.borders.by_name(name)
155
+ end
137
156
 
157
+ # @return [Fixnum]
158
+ def bx
159
+ @bx ||= border.bx
138
160
  end
139
- end
140
161
 
141
- # Return the border associated with the interface/view we are drawing.
142
- #
143
- # @return (see Vedeu::Borders::Repository#by_name)
144
- def border
145
- @border ||= Vedeu.borders.by_name(name)
146
- end
147
-
148
- # @return [Fixnum]
149
- def bx
150
- @bx ||= border.bx
151
- end
152
-
153
- # @return [Fixnum]
154
- def by
155
- @by ||= border.by
156
- end
157
-
158
- # @return [Vedeu::Cursors::Cursor]
159
- # @see Vedeu::Cursors::Repository#by_name
160
- def cursor
161
- @cursor ||= Vedeu.cursors.by_name(name)
162
- end
163
-
164
- end # Viewport
162
+ # @return [Fixnum]
163
+ def by
164
+ @by ||= border.by
165
+ end
166
+
167
+ # @return [Vedeu::Cursors::Cursor]
168
+ # @see Vedeu::Cursors::Repository#by_name
169
+ def cursor
170
+ @cursor ||= Vedeu.cursors.by_name(name)
171
+ end
172
+
173
+ end # Viewport
174
+
175
+ end # Output
165
176
 
166
177
  end # Vedeu
@@ -1,7 +1,7 @@
1
1
  module Vedeu
2
2
 
3
- # Convert an Array into an object which has some meaning in the context it
4
- # is being used.
3
+ # Convert an Array into an object which has some meaning in the
4
+ # context it is being used.
5
5
  #
6
6
  class Collection
7
7
 
@@ -1,7 +1,7 @@
1
1
  module Vedeu
2
2
 
3
- # When included into a class, provides the mechanism to store the class in a
4
- # repository for later retrieval.
3
+ # When included into a class, provides the mechanism to store the
4
+ # class in a repository for later retrieval.
5
5
  #
6
6
  module Model
7
7
 
@@ -11,8 +11,8 @@ module Vedeu
11
11
  # @return [Vedeu::Repository]
12
12
  attr_accessor :repository
13
13
 
14
- # When {Vedeu::Model} is included in a class, the methods within this module
15
- # are included as class methods on that class.
14
+ # When {Vedeu::Model} is included in a class, the methods within
15
+ # this module are included as class methods on that class.
16
16
  #
17
17
  module ClassMethods
18
18
 
@@ -20,11 +20,12 @@ module Vedeu
20
20
  # @return [Vedeu::Repository]
21
21
  attr_reader :repository
22
22
 
23
- # Build models using a simple DSL when a block is given, otherwise returns
24
- # a new instance of the class including this module.
23
+ # Build models using a simple DSL when a block is given,
24
+ # otherwise returns a new instance of the class including this
25
+ # module.
25
26
  #
26
- # @param attributes [Hash] A collection of attributes specific to the
27
- # model.
27
+ # @param attributes [Hash] A collection of attributes specific
28
+ # to the model.
28
29
  # @param block [Proc] The block passed to the build method.
29
30
  # @return [Object] An instance of the model.
30
31
  def build(attributes = {}, &block)
@@ -43,10 +44,11 @@ module Vedeu
43
44
  repository.by_name(name) if repository
44
45
  end
45
46
 
46
- # Provide a convenient way to define the child or children of a model.
47
+ # Provide a convenient way to define the child or children of a
48
+ # model.
47
49
  #
48
- # @param klass [Class] The member (singular) or collection (multiple)
49
- # class name for the respective model.
50
+ # @param klass [Class] The member (singular) or collection
51
+ # (multiple) class name for the respective model.
50
52
  # @return [void]
51
53
  def child(klass)
52
54
  send(:define_method, __callee__) { klass }
@@ -76,8 +78,8 @@ module Vedeu
76
78
 
77
79
  end # ClassMethods
78
80
 
79
- # When this module is included in a class, provide ClassMethods as class
80
- # methods for the class.
81
+ # When this module is included in a class, provide ClassMethods as
82
+ # class methods for the class.
81
83
  #
82
84
  # @param klass [Class]
83
85
  # @return [void]
@@ -85,13 +87,13 @@ module Vedeu
85
87
  klass.send(:extend, ClassMethods)
86
88
  end
87
89
 
88
- # Returns a DSL instance responsible for defining the DSL methods of this
89
- # model.
90
+ # Returns a DSL instance responsible for defining the DSL methods
91
+ # of this model.
90
92
  #
91
93
  # @param client [Object|NilClass] The client binding represents
92
- # the client application object that is currently invoking a DSL method.
93
- # It is required so that we can send messages to the client application
94
- # object should we need to.
94
+ # the client application object that is currently invoking a DSL
95
+ # method. It is required so that we can send messages to the
96
+ # client application object should we need to.
95
97
  # @return [void] The DSL instance for this model.
96
98
  def deputy(client = nil)
97
99
  Object.const_get(dsl_class).new(self, client)
@@ -109,14 +111,11 @@ module Vedeu
109
111
  #
110
112
  # @return [String]
111
113
  def dsl_class
112
- if demodulize(self.class.name) == 'Border'
113
- 'Vedeu::Borders::DSL'
114
- elsif demodulize(self.class.name) == 'Buffer'
115
- 'Vedeu::Buffers::DSL'
116
- elsif demodulize(self.class.name) == 'Geometry'
117
- 'Vedeu::Geometry::DSL'
118
- elsif demodulize(self.class.name) == 'Menu'
119
- 'Vedeu::Menus::DSL'
114
+ case demodulize(self.class.name)
115
+ when 'Border' then 'Vedeu::Borders::DSL'
116
+ when 'Buffer' then 'Vedeu::Buffers::DSL'
117
+ when 'Geometry' then 'Vedeu::Geometry::DSL'
118
+ when 'Menu' then 'Vedeu::Menus::DSL'
120
119
  else
121
120
  'Vedeu::DSL::' + demodulize(self.class.name)
122
121
  end
@@ -1,7 +1,7 @@
1
1
  module Vedeu
2
2
 
3
- # Repositories contain registerables, this module provides convenience methods
4
- # for them.
3
+ # Repositories contain registerables, this module provides
4
+ # convenience methods for them.
5
5
  #
6
6
  module Registerable
7
7
 
@@ -16,7 +16,8 @@ module Vedeu
16
16
  define_method(:null_model) { klass }
17
17
  end
18
18
 
19
- # The real model is the usual model to use for a given repository.
19
+ # The real model is the usual model to use for a given
20
+ # repository.
20
21
  #
21
22
  # @param klass [Class]
22
23
  # @return [Symbol]
@@ -38,9 +39,9 @@ module Vedeu
38
39
  # Returns the repositories registered.
39
40
  #
40
41
  # @note
41
- # If the repository is 'Geometries', for example, then @models will be
42
- # either an empty Geometries repository or the collection of stored
43
- # models.
42
+ # If the repository is 'Geometries', for example, then @models
43
+ # will be either an empty Geometries repository or the
44
+ # collection of stored models.
44
45
  #
45
46
  # @return [void]
46
47
  def repository
@@ -57,8 +58,8 @@ module Vedeu
57
58
 
58
59
  end # ClassMethods
59
60
 
60
- # When this module is included in a class, provide ClassMethods as class
61
- # methods for the class.
61
+ # When this module is included in a class, provide ClassMethods as
62
+ # class methods for the class.
62
63
  #
63
64
  # @param klass [Class]
64
65
  # @return [void]
@@ -1,6 +1,7 @@
1
1
  module Vedeu
2
2
 
3
- # Provides common methods for accessing the various repositories Vedeu uses.
3
+ # Provides common methods for accessing the various repositories
4
+ # Vedeu uses.
4
5
  #
5
6
  # @example
6
7
  # { 'models' => [Model, Model, Model] }
@@ -50,11 +51,12 @@ module Vedeu
50
51
  # Return the named model or a null object if not registered.
51
52
  #
52
53
  # @example
53
- # Vedeu.cursors.by_name('some_name') # => Fetch the cursor belonging to
54
- # the interface of the same name.
54
+ # # Fetch the cursor belonging to the interface of the same
55
+ # # name.
56
+ # Vedeu.cursors.by_name('some_name')
55
57
  #
56
- # Vedeu.groups.by_name(name) # => Fetch the names of the interfaces
57
- # belonging to this group.
58
+ # # Fetch the names of the interfaces belonging to this group.
59
+ # Vedeu.groups.by_name(name)
58
60
  #
59
61
  # @param name [String] The name of the stored model.
60
62
  # @return [void]
@@ -85,19 +87,20 @@ module Vedeu
85
87
  storage[name]
86
88
  end
87
89
 
88
- # Find the model attributes by name, raises an exception when the model
89
- # cannot be found.
90
+ # Find the model attributes by name, raises an exception when the
91
+ # model cannot be found.
90
92
  #
91
93
  # @param name [String]
92
- # @raise [Vedeu::Error::ModelNotFound] When the model cannot be found with
93
- # this name.
94
+ # @raise [Vedeu::Error::ModelNotFound] When the model cannot be
95
+ # found with this name.
94
96
  # @return [Hash<String => Object>]
95
97
  def find!(name)
96
98
  find(name) || fail(Vedeu::Error::ModelNotFound,
97
99
  "Cannot find model by name: '#{name}'")
98
100
  end
99
101
 
100
- # Find a model by name, registers the model by name when not found.
102
+ # Find a model by name, registers the model by name when not
103
+ # found.
101
104
  #
102
105
  # @param name [String]
103
106
  # @return [void]
@@ -118,7 +121,8 @@ module Vedeu
118
121
  "<#{self.class.name}>"
119
122
  end
120
123
 
121
- # Returns a boolean indicating whether the named model is registered.
124
+ # Returns a boolean indicating whether the named model is
125
+ # registered.
122
126
  #
123
127
  # @param name [String]
124
128
  # @return [Boolean]
@@ -129,8 +133,8 @@ module Vedeu
129
133
  storage.include?(name)
130
134
  end
131
135
 
132
- # Returns the storage with the named model removed, or false when the model
133
- # does not exist.
136
+ # Returns the storage with the named model removed, or false when
137
+ # the model does not exist.
134
138
  #
135
139
  # @param name [String]
136
140
  # @return [Hash|FalseClass]
@@ -150,11 +154,12 @@ module Vedeu
150
154
  alias_method :delete, :remove
151
155
  alias_method :deregister, :remove
152
156
 
153
- # Stores the model instance by name in the repository of the model.
157
+ # Stores the model instance by name in the repository of the
158
+ # model.
154
159
  #
155
160
  # @param model [void] A model instance.
156
- # @raise [Vedeu::Error::MissingRequired] When the name attribute is not
157
- # defined.
161
+ # @raise [Vedeu::Error::MissingRequired] When the name attribute
162
+ # is not defined.
158
163
  # @return [void] The model instance which was stored.
159
164
  def store(model)
160
165
  unless present?(model.name)
@@ -19,7 +19,8 @@ module Vedeu
19
19
  storage.empty?
20
20
  end
21
21
 
22
- # Returns a boolean indicating whether the named model is registered.
22
+ # Returns a boolean indicating whether the named model is
23
+ # registered.
23
24
  #
24
25
  # @param name [String]
25
26
  # @return [Boolean]
@@ -30,7 +31,8 @@ module Vedeu
30
31
  end
31
32
  alias_method :registered?, :exists?
32
33
 
33
- # Returns a collection of the names of all the registered entities.
34
+ # Returns a collection of the names of all the registered
35
+ # entities.
34
36
  #
35
37
  # @return [Array]
36
38
  def registered
@@ -60,8 +62,8 @@ module Vedeu
60
62
  storage.size
61
63
  end
62
64
 
63
- # Return whole repository; provides raw access to the storage for this
64
- # repository.
65
+ # Return whole repository; provides raw access to the storage for
66
+ # this repository.
65
67
  #
66
68
  # @return [Array|Hash|Set]
67
69
  def storage
@@ -4,8 +4,9 @@ module Vedeu
4
4
 
5
5
  # Provides the mechanism to start up a generated application.
6
6
  #
7
- # This class loads all necessary client application files and initializes
8
- # Vedeu with this data, then starts the client application.
7
+ # This class loads all necessary client application files and
8
+ # initializes Vedeu with this data, then starts the client
9
+ # application.
9
10
  #
10
11
  class Bootstrap
11
12
 
@@ -23,8 +24,8 @@ module Vedeu
23
24
  @argv = argv
24
25
  end
25
26
 
26
- # Loads all of the client application files so that Vedeu has access to
27
- # them, then launches the client application.
27
+ # Loads all of the client application files so that Vedeu has
28
+ # access to them, then launches the client application.
28
29
  #
29
30
  # @return [void]
30
31
  def start
@@ -50,7 +51,8 @@ module Vedeu
50
51
  end
51
52
 
52
53
  # @note
53
- # config/configuration.rb is already loaded so don't load it twice
54
+ # config/configuration.rb is already loaded so don't load it
55
+ # twice.
54
56
  # @return [void]
55
57
  def client_configuration!
56
58
  Dir[File.join(base_path, 'config/**/*')].each do |path|
@@ -24,6 +24,8 @@ module Vedeu
24
24
  while @loop
25
25
  yield
26
26
 
27
+ Vedeu::Terminal::Buffer.render
28
+
27
29
  safe_exit_point!
28
30
  end
29
31
  rescue Vedeu::Error::Interrupt