vedeu 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +0 -30
  3. data/lib/vedeu/all.rb +0 -1
  4. data/lib/vedeu/api.rb +5 -139
  5. data/lib/vedeu/application/application_controller.rb +12 -10
  6. data/lib/vedeu/application/application_helper.rb +3 -3
  7. data/lib/vedeu/application/application_view.rb +7 -6
  8. data/lib/vedeu/application/controller.rb +16 -10
  9. data/lib/vedeu/bindings/application.rb +6 -3
  10. data/lib/vedeu/bindings/bindings.rb +7 -6
  11. data/lib/vedeu/bindings/document.rb +18 -18
  12. data/lib/vedeu/bindings/drb.rb +12 -8
  13. data/lib/vedeu/bindings/focus.rb +12 -9
  14. data/lib/vedeu/bindings/menus.rb +12 -11
  15. data/lib/vedeu/bindings/movement.rb +23 -22
  16. data/lib/vedeu/bindings/refresh.rb +13 -10
  17. data/lib/vedeu/bindings/visibility.rb +10 -8
  18. data/lib/vedeu/borders/all.rb +26 -0
  19. data/lib/vedeu/borders/dsl.rb +1 -23
  20. data/lib/vedeu/buffers/all.rb +12 -0
  21. data/lib/vedeu/buffers/buffer.rb +1 -10
  22. data/lib/vedeu/buffers/refresh.rb +57 -0
  23. data/lib/vedeu/buffers/virtual_buffer.rb +1 -1
  24. data/lib/vedeu/cursors/all.rb +9 -0
  25. data/lib/vedeu/cursors/cursor.rb +16 -0
  26. data/lib/vedeu/dsl/interface.rb +4 -4
  27. data/lib/vedeu/events/aliases.rb +28 -9
  28. data/lib/vedeu/events/collection.rb +1 -0
  29. data/lib/vedeu/events/trigger.rb +5 -3
  30. data/lib/vedeu/geometry/all.rb +7 -0
  31. data/lib/vedeu/geometry/position.rb +2 -2
  32. data/lib/vedeu/input/editor/editor.rb +1 -1
  33. data/lib/vedeu/log/log.rb +6 -0
  34. data/lib/vedeu/log/timer.rb +2 -2
  35. data/lib/vedeu/models/focus.rb +3 -0
  36. data/lib/vedeu/models/group.rb +13 -0
  37. data/lib/vedeu/models/interface.rb +17 -1
  38. data/lib/vedeu/models/toggleable.rb +2 -1
  39. data/lib/vedeu/models/views/collections/chars.rb +1 -0
  40. data/lib/vedeu/models/views/collections/lines.rb +1 -0
  41. data/lib/vedeu/models/views/collections/streams.rb +1 -0
  42. data/lib/vedeu/models/views/collections/view_collection.rb +1 -0
  43. data/lib/vedeu/models/views/line.rb +2 -2
  44. data/lib/vedeu/null/generic.rb +27 -4
  45. data/lib/vedeu/null/interface.rb +1 -32
  46. data/lib/vedeu/null/menu.rb +1 -16
  47. data/lib/vedeu/null/view.rb +1 -33
  48. data/lib/vedeu/options.rb +3 -0
  49. data/lib/vedeu/output/clear/named_group.rb +5 -0
  50. data/lib/vedeu/output/clear/named_interface.rb +5 -0
  51. data/lib/vedeu/output/direct.rb +2 -2
  52. data/lib/vedeu/output/viewport.rb +1 -1
  53. data/lib/vedeu/refresh/refresh_group.rb +1 -1
  54. data/lib/vedeu/runtime/application.rb +3 -0
  55. data/lib/vedeu/terminal/terminal.rb +3 -0
  56. data/lib/vedeu/version.rb +1 -1
  57. data/test/lib/vedeu/buffers/refresh_test.rb +54 -0
  58. data/test/lib/vedeu/null/generic_test.rb +18 -0
  59. data/test/lib/vedeu/null/interface_test.rb +4 -30
  60. data/test/lib/vedeu/null/menu_test.rb +1 -18
  61. data/test/lib/vedeu/null/view_test.rb +6 -31
  62. data/{examples → test/support}/colour_support.sh +0 -0
  63. data/{examples → test/support/examples}/borders_app.rb +0 -0
  64. data/{examples → test/support/examples}/configuration_app.rb +0 -0
  65. data/{examples → test/support/examples}/drb_app.rb +0 -0
  66. data/{examples → test/support/examples}/editor_app.rb +0 -0
  67. data/{examples → test/support/examples}/focus_app.rb +0 -0
  68. data/{examples → test/support/examples}/hello_world.rb +0 -0
  69. data/{examples → test/support/examples}/material_colours_app.rb +0 -0
  70. data/{examples → test/support/examples}/material_colours_app_20150721.svg +0 -0
  71. data/{examples → test/support/examples}/typed_commands/command.erb +0 -0
  72. data/{examples → test/support/examples}/typed_commands/output.erb +0 -0
  73. data/{examples → test/support/examples}/typed_commands/status.erb +0 -0
  74. data/{examples → test/support/examples}/typed_commands/typed_commands_app.rb +0 -0
  75. data/{examples → test/support/examples}/view_templates_app/default.erb +0 -0
  76. data/{examples → test/support/examples}/view_templates_app/prune.erb +0 -0
  77. data/{examples → test/support/examples}/view_templates_app/view_templates_app.rb +0 -0
  78. data/{examples → test/support/examples}/view_templates_app/wrap.erb +0 -0
  79. metadata +38 -21
  80. data/lib/vedeu/refresh/refresh_buffer.rb +0 -53
  81. data/test/lib/vedeu/refresh/refresh_buffer_test.rb +0 -50
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6715eeab8888f23894a0f912e36418930d4bcb10
4
- data.tar.gz: eff8b0d4c7eac80db7a17f1760f52bcd9df6dc7d
3
+ metadata.gz: c8361e0f679e7a752058e9a18febf179a3866dcb
4
+ data.tar.gz: 48b0d34dc40c43fad42cc60c9c768716fea5fc55
5
5
  SHA512:
6
- metadata.gz: 62af5ad1afd927b7afb3ca81826a50dec90008f015bc86b5d885ad5bd411bde8caff604383a174f7b8e712746cadd382b645fdfd2e5aab4e7d7c74db771ea2b7
7
- data.tar.gz: e456f90b8acc575aa181e33c4787d38d3a7b87d0245ad9aa4fcf47bc7af6148f994ff59e99ca843e3c6bfae19e8070af5fff911ec7a49629c1c6144a5bc77c2c
6
+ metadata.gz: 78eaf93359ac8620f7039ef9f15aef044c6023e1cb71baff51809bd0d70bea21665223f43a810d061cbe42d72059bc325d999890ce407a6ae432007b67a810e0
7
+ data.tar.gz: ecdaafd1a7c70f86d9bf4ce2358135646b2692974b4de25a683b57c8771c218f0cb50942d9eec6e15adfa7ce1ddd83b6047563c0daf269cd46ceb39c74e4f8a4
data/.codeclimate.yml CHANGED
@@ -1,39 +1,9 @@
1
- # This is a sample .codeclimate.yml configured for Engine analysis on Code
2
- # Climate Platform. For an overview of the Code Climate Platform, see here:
3
- # http://docs.codeclimate.com/article/300-the-codeclimate-platform
4
-
5
- # Under the engines key, you can configure which engines will analyze your repo.
6
- # Each key is an engine name. For each value, you need to specify enabled: true
7
- # to enable the engine as well as any other engines-specific configuration.
8
-
9
- # For more details, see here:
10
- # http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
11
-
12
- # For a list of all available engines, see here:
13
- # http://docs.codeclimate.com/article/296-engines-available-engines
14
- languages:
15
- Ruby: true
16
-
17
1
  engines:
18
- # to turn on an engine, add it here and set enabled to `true`
19
- # to turn off an engine, set enabled to `false` or remove it
20
2
  rubocop:
21
3
  enabled: true
22
-
23
- # Engines can analyze files and report issues on them, but you can separately
24
- # decide which files will receive ratings based on those issues. This is
25
- # specified by path patterns under the ratings key.
26
-
27
- # For more details see here:
28
- # http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
29
-
30
4
  ratings:
31
5
  paths:
32
6
  - lib/**
33
-
34
- # You can globally exclude files from being analyzed by any engine using the
35
- # exclude_paths key.
36
-
37
7
  exclude_paths:
38
8
  - examples/**/*
39
9
  - test/**/*
data/lib/vedeu/all.rb CHANGED
@@ -41,7 +41,6 @@ require 'vedeu/null/menu'
41
41
  require 'vedeu/null/view'
42
42
 
43
43
  require 'vedeu/refresh/refresh'
44
- require 'vedeu/refresh/refresh_buffer'
45
44
  require 'vedeu/refresh/refresh_group'
46
45
 
47
46
  require 'vedeu/models/toggleable'
data/lib/vedeu/api.rb CHANGED
@@ -28,23 +28,10 @@ module Vedeu
28
28
  # @see Vedeu::Configuration.configuration
29
29
  def_delegators Vedeu::Configuration, :configure, :configuration
30
30
 
31
- # Manipulate the currently focussed cursor.
32
- #
33
- # @example
34
- # Vedeu.cursor
35
- #
36
31
  # @!method cursor
37
32
  # @return [Vedeu::Cursors::Cursor]
38
33
  def_delegators Vedeu::Cursors::Repository, :cursor
39
34
 
40
- # Manipulate the DRb server implementation.
41
- #
42
- # @example
43
- # Vedeu.drb_restart
44
- # Vedeu.drb_start
45
- # Vedeu.drb_status
46
- # Vedeu.drb_stop
47
- #
48
35
  # @!method drb_restart
49
36
  # @see Vedeu::Distributed::Server#restart
50
37
  # @!method drb_start
@@ -56,46 +43,26 @@ module Vedeu
56
43
  def_delegators Vedeu::Distributed::Server, :drb_restart, :drb_start,
57
44
  :drb_status, :drb_stop
58
45
 
59
- # @example
60
- # Vedeu.border
61
- #
62
46
  # @!method border
63
47
  # @see Vedeu::Borders::DSL.border
64
48
  def_delegators Vedeu::Borders::DSL, :border
65
49
 
66
- # @example
67
- # Vedeu.geometry
68
- #
69
50
  # @!method geometry
70
51
  # @see Vedeu::Geometry::DSL.geometry
71
52
  def_delegators Vedeu::Geometry::DSL, :geometry
72
53
 
73
- # @example
74
- # Vedeu.group
75
- #
76
54
  # @!method group
77
55
  # @see Vedeu::DSL::Group.group
78
56
  def_delegators Vedeu::DSL::Group, :group
79
57
 
80
- # @example
81
- # Vedeu.keymap
82
- #
83
58
  # @!method keymap
84
59
  # @see Vedeu::DSL::Keymap.keymap
85
60
  def_delegators Vedeu::DSL::Keymap, :keymap
86
61
 
87
- # @example
88
- # Vedeu.interface
89
- #
90
62
  # @!method interface
91
63
  # @see Vedeu::DSL::Interface.interface
92
64
  def_delegators Vedeu::DSL::Interface, :interface
93
65
 
94
- # @example
95
- # Vedeu.renders
96
- # Vedeu.render
97
- # Vedeu.views
98
- #
99
66
  # @!method render
100
67
  # @see Vedeu::DSL::View.render
101
68
  # @!method renders
@@ -104,11 +71,6 @@ module Vedeu
104
71
  # @see Vedeu::DSL::View.views
105
72
  def_delegators Vedeu::DSL::View, :renders, :render, :views
106
73
 
107
- # @example
108
- # Vedeu.bind(name) { }
109
- # Vedeu.bound?(name)
110
- # Vedeu.unbind(name)
111
- #
112
74
  # @!method bind
113
75
  # @see Vedeu::Events::Event.bind
114
76
  # @!method bound?
@@ -117,23 +79,12 @@ module Vedeu
117
79
  # @see Vedeu::Events::Event.unbind
118
80
  def_delegators Vedeu::Events::Event, :bind, :bound?, :unbind
119
81
 
120
- # @example
121
- # Vedeu.bind_alias(alias_name, event_name)
122
- # Vedeu.unbind_alias(alias_name)
123
- #
124
82
  # @!method bind_alias
125
- # @see Vedeu::Events::Aliases.bind_alias
83
+ # @see Vedeu::Events::Aliases#bind_alias
126
84
  # @!method unbind_alias
127
- # @see Vedeu::Events::Aliases.unbind_alias
85
+ # @see Vedeu::Events::Aliases#unbind_alias
128
86
  def_delegators Vedeu::Events::Aliases, :bind_alias, :unbind_alias
129
87
 
130
- # @example
131
- # Vedeu.focus
132
- # Vedeu.focus_by_name
133
- # Vedeu.focussed?
134
- # Vedeu.focus_next
135
- # Vedeu.focus_previous
136
- #
137
88
  # @!method focus
138
89
  # @see Vedeu::Focus#focus
139
90
  # @!method focus_by_name
@@ -147,11 +98,6 @@ module Vedeu
147
98
  def_delegators Vedeu::Focus, :focus, :focus_by_name, :focussed?,
148
99
  :focus_next, :focus_previous
149
100
 
150
- # @example
151
- # Vedeu.log
152
- # Vedeu.log_stdout
153
- # Vedeu.log_stderr
154
- #
155
101
  # @!method log
156
102
  # @see Vedeu::Log.log
157
103
  # @!method log_stdout
@@ -160,116 +106,56 @@ module Vedeu
160
106
  # @see Vedeu::Log.log_stderr
161
107
  def_delegators Vedeu::Log, :log, :log_stdout, :log_stderr
162
108
 
163
- # @example
164
- # Vedeu.keypress
165
- #
166
109
  # @!method keypress
167
110
  # @see Vedeu::Mapper.keypress
168
111
  def_delegators Vedeu::Mapper, :keypress
169
112
 
170
- # @example
171
- # Vedeu.menu
172
- #
173
113
  # @!method menu
174
114
  # @see Vedeu::Menu.menu
175
115
  def_delegators Vedeu::Menu, :menu
176
116
 
177
- # Instruct Vedeu to load the client application controller action with
178
- # parameters.
179
- #
180
117
  # @!method goto
181
- # @see Vedeu::Router.goto
118
+ # @see Vedeu::Router#goto
182
119
  def_delegators Vedeu::Router, :goto
183
120
 
184
- # Return the height of the terminal running the client application.
185
- #
186
- # @example
187
- # Vedeu.height
188
- #
189
121
  # @!method height
190
122
  # @see Vedeu::Terminal#height
191
123
  def_delegators Vedeu::Terminal, :height
192
124
 
193
- # Return the width of the terminal running the client application.
194
- #
195
- # @example
196
- # Vedeu.width
197
- #
198
125
  # @!method width
199
126
  # @see Vedeu::Terminal#width
200
127
  def_delegators Vedeu::Terminal, :width
201
128
 
202
- # Trigger an event by name.
203
- #
204
- # @example
205
- # Vedeu.trigger(:name)
206
- #
207
129
  # @!method trigger
208
130
  # @see Vedeu::Events::Trigger.trigger
209
131
  def_delegators Vedeu::Events::Trigger, :trigger
210
132
 
211
- # Exit the client application using Vedeu.
212
- #
213
- # @example
214
- # Vedeu.exit
215
- #
216
133
  # @!method exit
217
134
  # @see Vedeu::Application.stop
218
135
  def_delegators Vedeu::Application, :exit
219
136
 
220
- # Clear the entire terminal.
221
- #
222
- # @example
223
- # Vedeu.clear
224
- #
225
137
  # @!method clear
226
- # @see Vedeu::Terminal.clear
138
+ # @see Vedeu::Terminal#clear
227
139
  def_delegators Vedeu::Terminal, :clear
228
140
 
229
- # Clear the interface with the given name.
230
- #
231
- # @example
232
- # Vedeu.clear_by_name(name)
233
- #
234
141
  # @!method clear_by_name
235
142
  # @see Vedeu::Clear::NamedInterface.render
236
143
  def_delegators Vedeu::Clear::NamedInterface, :clear_by_name
237
144
 
238
- # Clears the group of interfaces belonging to the given name.
239
- #
240
- # @example
241
- # Vedeu.clear_by_group(name)
242
- #
243
145
  # @!method clear_by_group
244
146
  # @see Vedeu::Clear::NamedGroup.render
245
147
  def_delegators Vedeu::Clear::NamedGroup, :clear_by_group
246
148
 
247
- # Hide the cursor for the interface of the given name.
248
- #
249
- # @example
250
- # Vedeu.hide_cursor(name)
251
- #
252
149
  # @!method hide_cursor
253
150
  # @see Vedeu::Cursors::Cursor#hide
254
151
  def_delegators Vedeu::Cursors::Cursor, :hide_cursor
255
152
 
256
- # Shows the cursor for the interface of the given name.
257
- #
258
- # @example
259
- # Vedeu.show_cursor(name)
260
- #
261
153
  # @!method show_cursor
262
154
  # @see Vedeu::Cursors::Cursor#show
263
155
  def_delegators Vedeu::Cursors::Cursor, :show_cursor
264
156
 
265
- # Toggle the visibility of the cursor with the given name.
266
- #
267
- # @example
268
- # Vedeu.toggle_cursor(name)
269
- #
270
157
  # @!method toggle_cursor
271
- # @see Vedeu::Cursors::Cursor#hide
272
- # @see Vedeu::Cursors::Cursor#show
158
+ # @see Vedeu::Cursors::Cursor#toggle
273
159
  def_delegators Vedeu::Cursors::Cursor, :toggle_cursor
274
160
 
275
161
  # @!method hide_group
@@ -280,38 +166,18 @@ module Vedeu
280
166
  # @see Vedeu::Group#show
281
167
  def_delegators Vedeu::Group, :show_group
282
168
 
283
- # Toggle the visibility of the group with the given name.
284
- #
285
- # @example
286
- # Vedeu.toggle_group(name)
287
- #
288
169
  # @!method toggle_group
289
170
  # @see Vedeu::Group#toggle
290
171
  def_delegators Vedeu::Group, :toggle_group
291
172
 
292
- # Hide the interface with the given name.
293
- #
294
- # @example
295
- # Vedeu.hide_interface(name)
296
- #
297
173
  # @!method hide_interface
298
174
  # @see Vedeu::Interface#hide
299
175
  def_delegators Vedeu::Interface, :hide_interface
300
176
 
301
- # Shows the interface with the given name.
302
- #
303
- # @example
304
- # Vedeu.show_interface(name)
305
- #
306
177
  # @!method show_interface
307
178
  # @see Vedeu::Interface#show
308
179
  def_delegators Vedeu::Interface, :show_interface
309
180
 
310
- # Toggle the visibility of the interface with the given name.
311
- #
312
- # @example
313
- # Vedeu.toggle_interface(name)
314
- #
315
181
  # @!method toggle_interface
316
182
  # @see Vedeu::Interface#toggle
317
183
  def_delegators Vedeu::Interface, :toggle_interface
@@ -1,8 +1,8 @@
1
1
  module Vedeu
2
2
 
3
- # Provides methods which should be available to all client application
4
- # controllers. The client application's ApplicationController will inherit
5
- # from this class.
3
+ # Provides methods which should be available to all client
4
+ # application controllers. The client application's
5
+ # ApplicationController will inherit from this class.
6
6
  #
7
7
  class ApplicationController
8
8
 
@@ -10,18 +10,20 @@ module Vedeu
10
10
 
11
11
  # Returns an instance of Vedeu::ApplicationController.
12
12
  #
13
- # @param params [Hash] The named parameters provided to the controller which
14
- # will be used by the actions within the controller.
13
+ # @param params [Hash] The named parameters provided to the
14
+ # controller which will be used by the actions within the
15
+ # controller.
15
16
  # @return [Vedeu::ApplicationController]
16
17
  def initialize(**params)
17
18
  @params = params
18
19
  end
19
20
 
20
- # @param controller [Symbol] The name of controller to be redirected to.
21
- # @param action [Symbol] The name of the action within the controller to be
22
- # called.
23
- # @param params [Hash] Any named parameter which need to be passed to the
24
- # action.
21
+ # @param controller [Symbol] The name of controller to be
22
+ # redirected to.
23
+ # @param action [Symbol] The name of the action within the
24
+ # controller to be called.
25
+ # @param params [Hash] Any named parameter which need to be passed
26
+ # to the action.
25
27
  def redirect_to(controller, action, **params)
26
28
  Vedeu.trigger(:_goto_, controller, action, params)
27
29
  end
@@ -1,8 +1,8 @@
1
1
  module Vedeu
2
2
 
3
- # Provides methods which should be available to all client application
4
- # helpers. The client application's ApplicationHelper will include this
5
- # module.
3
+ # Provides methods which should be available to all client
4
+ # application helpers. The client application's ApplicationHelper
5
+ # will include this module.
6
6
  #
7
7
  module ApplicationHelper
8
8
 
@@ -1,7 +1,8 @@
1
1
  module Vedeu
2
2
 
3
- # Provides the mechanism to render views for the client application. The
4
- # client application's ApplicationView will inherit from this class.
3
+ # Provides the mechanism to render views for the client application.
4
+ # The client application's ApplicationView will inherit from this
5
+ # class.
5
6
  #
6
7
  class ApplicationView
7
8
 
@@ -27,8 +28,8 @@ module Vedeu
27
28
  end
28
29
  end
29
30
 
30
- # @raise [Vedeu::Error::NotImplemented] Subclasses of this class must
31
- # implement this method.
31
+ # @raise [Vedeu::Error::NotImplemented] Subclasses of this class
32
+ # must implement this method.
32
33
  def render
33
34
  fail Vedeu::Error::NotImplemented,
34
35
  'The subclass of Vedeu::ApplicationView must implement the #render' \
@@ -43,8 +44,8 @@ module Vedeu
43
44
 
44
45
  private
45
46
 
46
- # Provides the path to the template file using the base_path configuration
47
- # option.
47
+ # Provides the path to the template file using the base_path
48
+ # configuration option.
48
49
  #
49
50
  # @param value [String]
50
51
  # @return [String]
@@ -10,8 +10,9 @@ module Vedeu
10
10
 
11
11
  attr_accessor :controller_name
12
12
 
13
- # Specifying the controller name in your controller provides Vedeu with
14
- # the means to route requests to different parts of your application.
13
+ # Specifying the controller name in your controller provides
14
+ # Vedeu with the means to route requests to different parts of
15
+ # your application.
15
16
  #
16
17
  # @example
17
18
  # class YourController
@@ -25,7 +26,8 @@ module Vedeu
25
26
  # end
26
27
  #
27
28
  # @param controller_name [Symbol] The name of the controller.
28
- # @return [Hash<Symbol => Hash<Symbol => String, Array<Symbol>>>]
29
+ # @return
30
+ # [Hash<Symbol => Hash<Symbol => String, Array<Symbol>>>]
29
31
  def controller(controller_name = nil)
30
32
  @controller_name = controller_name
31
33
 
@@ -33,8 +35,9 @@ module Vedeu
33
35
  end
34
36
  alias_method :controller_name, :controller
35
37
 
36
- # Specifying the action names in your controller provides Vedeu with the
37
- # means to route requests to different parts of your application.
38
+ # Specifying the action names in your controller provides Vedeu
39
+ # with the means to route requests to different parts of your
40
+ # application.
38
41
  #
39
42
  # @example
40
43
  # class YourController
@@ -51,10 +54,13 @@ module Vedeu
51
54
  #
52
55
  # end
53
56
  #
54
- # Vedeu.trigger(:_goto_, :your_controller, :show, { some: :args })
57
+ # Vedeu.trigger(:_goto_,
58
+ # :your_controller,
59
+ # :show,
60
+ # { some: :args })
55
61
  #
56
- # @param action_names [Array<Symbol>, Symbol] A collection of action names
57
- # or the name of the action.
62
+ # @param action_names [Array<Symbol>, Symbol] A collection of
63
+ # action names or the name of the action.
58
64
  # @return [Array<Symbol>]
59
65
  def action(*action_names)
60
66
  action_names.each do |action_name|
@@ -66,8 +72,8 @@ module Vedeu
66
72
 
67
73
  end # ClassMethods
68
74
 
69
- # When this module is included in a class, provide ClassMethods as class
70
- # methods for the class.
75
+ # When this module is included in a class, provide ClassMethods as
76
+ # class methods for the class.
71
77
  #
72
78
  # @param klass [Class]
73
79
  # @return [void]