vedeu 0.6.6 → 0.6.7

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 (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]