vedeu 0.5.10 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +2 -1
  3. data/bin/vedeu +1 -4
  4. data/lib/vedeu/all.rb +8 -12
  5. data/lib/vedeu/bindings/drb.rb +2 -2
  6. data/lib/vedeu/bindings/system.rb +11 -7
  7. data/lib/vedeu/{output/virtual_terminal.rb → buffers/virtual_buffer.rb} +15 -8
  8. data/lib/vedeu/{output/virtual_buffer.rb → buffers/virtual_buffers.rb} +4 -4
  9. data/lib/vedeu/cursor/cursor.rb +2 -6
  10. data/lib/vedeu/cursor/reposition.rb +11 -6
  11. data/lib/vedeu/esc/esc.rb +4 -0
  12. data/lib/vedeu/models/views/view.rb +1 -1
  13. data/lib/vedeu/output/output.rb +1 -1
  14. data/lib/vedeu/plugins.rb +7 -3
  15. data/lib/vedeu/plugins/plugin.rb +4 -4
  16. data/lib/vedeu/refresh/refresh.rb +31 -0
  17. data/lib/vedeu/refresh/refresh_buffer.rb +53 -0
  18. data/lib/vedeu/{cursor → refresh}/refresh_cursor.rb +4 -4
  19. data/lib/vedeu/refresh/refresh_group.rb +59 -0
  20. data/lib/vedeu/terminal.rb +2 -2
  21. data/lib/vedeu/version.rb +1 -1
  22. data/test/lib/vedeu/{output/virtual_terminal_test.rb → buffers/virtual_buffer_test.rb} +16 -12
  23. data/test/lib/vedeu/{output/virtual_buffer_test.rb → buffers/virtual_buffers_test.rb} +3 -3
  24. data/test/lib/vedeu/cursor/cursors_test.rb +2 -0
  25. data/test/lib/vedeu/distributed/client_test.rb +13 -9
  26. data/test/lib/vedeu/distributed/server_test.rb +5 -0
  27. data/test/lib/vedeu/distributed/subprocess_test.rb +12 -1
  28. data/test/lib/vedeu/models/views/view_test.rb +41 -0
  29. data/test/lib/vedeu/output/output_test.rb +1 -1
  30. data/test/lib/vedeu/output/renderers/html_test.rb +1 -1
  31. data/test/lib/vedeu/output/viewport_test.rb +15 -16
  32. data/test/lib/vedeu/plugins_test.rb +7 -0
  33. data/test/lib/vedeu/refresh/refresh_buffer_test.rb +50 -0
  34. data/test/lib/vedeu/{cursor → refresh}/refresh_cursor_test.rb +8 -6
  35. data/test/lib/vedeu/{output → refresh}/refresh_group_test.rb +4 -2
  36. data/test/lib/vedeu/refresh/refresh_test.rb +44 -0
  37. data/test/test_helper.rb +1 -1
  38. data/vedeu.gemspec +3 -3
  39. metadata +24 -55
  40. data/lib/vedeu/cli/generator/all.rb +0 -9
  41. data/lib/vedeu/cli/generator/application.rb +0 -133
  42. data/lib/vedeu/cli/generator/helpers.rb +0 -139
  43. data/lib/vedeu/cli/generator/templates/application/.gitignore +0 -1
  44. data/lib/vedeu/cli/generator/templates/application/.ruby-version +0 -1
  45. data/lib/vedeu/cli/generator/templates/application/Gemfile +0 -4
  46. data/lib/vedeu/cli/generator/templates/application/LICENSE.txt +0 -24
  47. data/lib/vedeu/cli/generator/templates/application/README.md +0 -18
  48. data/lib/vedeu/cli/generator/templates/application/app/controllers/application_controller.erb +0 -7
  49. data/lib/vedeu/cli/generator/templates/application/app/controllers/name.erb +0 -22
  50. data/lib/vedeu/cli/generator/templates/application/app/helpers/application_helper.erb +0 -9
  51. data/lib/vedeu/cli/generator/templates/application/app/helpers/name.erb +0 -11
  52. data/lib/vedeu/cli/generator/templates/application/app/models/keymaps/_global_.rb +0 -8
  53. data/lib/vedeu/cli/generator/templates/application/app/models/keymaps/name.erb +0 -3
  54. data/lib/vedeu/cli/generator/templates/application/app/views/interfaces/name.erb +0 -67
  55. data/lib/vedeu/cli/generator/templates/application/app/views/name.erb +0 -36
  56. data/lib/vedeu/cli/generator/templates/application/app/views/templates/name.erb +0 -0
  57. data/lib/vedeu/cli/generator/templates/application/application.erb +0 -22
  58. data/lib/vedeu/cli/generator/templates/application/bin/name +0 -9
  59. data/lib/vedeu/cli/generator/templates/application/config/app_name.erb +0 -1
  60. data/lib/vedeu/cli/generator/templates/application/config/configuration.erb +0 -33
  61. data/lib/vedeu/cli/generator/templates/application/lib/.gitkeep +0 -0
  62. data/lib/vedeu/cli/generator/templates/application/test/.gitkeep +0 -0
  63. data/lib/vedeu/cli/generator/templates/application/vendor/.gitkeep +0 -0
  64. data/lib/vedeu/cli/generator/view.rb +0 -86
  65. data/lib/vedeu/cli/main.rb +0 -39
  66. data/lib/vedeu/output/refresh.rb +0 -69
  67. data/lib/vedeu/output/refresh_group.rb +0 -41
  68. data/test/lib/vedeu/cli/generator/application_test.rb +0 -37
  69. data/test/lib/vedeu/cli/generator/helpers_test.rb +0 -197
  70. data/test/lib/vedeu/cli/generator/view_test.rb +0 -38
  71. data/test/lib/vedeu/cli/main_test.rb +0 -59
  72. data/test/lib/vedeu/output/refresh_test.rb +0 -63
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1096fd3f0f65d843b0f6f92e4b70a721570f15da
4
- data.tar.gz: 808dc9b634727f33c20aa32712e2d6066c759b4d
3
+ metadata.gz: edd33e8e10532a87dc3e6ea6c7aa2142227e70f7
4
+ data.tar.gz: 29b39513afa32eac1564900988eb5d28d386a17a
5
5
  SHA512:
6
- metadata.gz: 8cd549653f68705952718d30bd75d653cb17215dd2c30cd7fdbc407e933bb1a831f19f74da3e567c8fa4d610a93f2f93cf9a1ebf4c377a0b468816b8159d0fc9
7
- data.tar.gz: 328c6e794c5387531e94a13bc3be5b30facb61697cd531fed4481214b8b56016b3c8aa7e96ec95182319a0577c63af1e96e12b23a344fd38cc4b53f205ae829f
6
+ metadata.gz: 6d1cd9b457457e795e9779b9d1265b6db9e8669d29f03ab62079250b08ecd65f1091c046351e9ae849f3b7843313828652984e1bc4561eef43e972ec600c0a18
7
+ data.tar.gz: 679201d647f7663cbe6a3789d2967206232efef7636642150ad53bfbc92ccbd18ad55cf0dcd2e0488edaa454405bec7332b8d003825c35de353edf58223483d5
data/Dockerfile CHANGED
@@ -61,8 +61,9 @@ RUN gem install bundler
61
61
 
62
62
  ADD . /home/vedeu/gem/
63
63
  WORKDIR /home/vedeu/gem
64
+ RUN chown -R vedeu:vedeu .
64
65
  USER vedeu
65
- RUN bundle
66
+ RUN bundle install --deployment
66
67
  WORKDIR /home/vedeu
67
68
 
68
69
  # To build this file:
data/bin/vedeu CHANGED
@@ -1,21 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rake'
4
-
5
4
  bundler_message = 'Bundler is required. Please install bundler with ' \
6
5
  "'gem install bundler'"
7
6
  begin
8
7
  require 'bundler'
9
-
10
8
  rescue LoadError
11
9
  puts bundler_message
12
-
13
10
  end
14
11
 
15
12
  fail bundler_message unless defined?(Bundler)
16
13
 
17
14
  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
18
- # load Gem.bin_path('bundler', 'bundle')
19
15
 
20
16
  Bundler.setup
21
17
 
@@ -23,5 +19,6 @@ gem_dir = File.expand_path('..', File.dirname(__FILE__))
23
19
  $LOAD_PATH.unshift(gem_dir) unless $LOAD_PATH.include?(gem_dir)
24
20
 
25
21
  require 'vedeu'
22
+ require 'vedeu_cli'
26
23
 
27
24
  Vedeu::CLI::Main.start(ARGV.dup)
@@ -58,11 +58,17 @@ require 'vedeu/colours/colour'
58
58
 
59
59
  require 'vedeu/buffers/buffer'
60
60
  require 'vedeu/buffers/buffers'
61
+ require 'vedeu/buffers/virtual_buffer'
62
+ require 'vedeu/buffers/virtual_buffers'
63
+
64
+ require 'vedeu/refresh/refresh'
65
+ require 'vedeu/refresh/refresh_cursor'
66
+ require 'vedeu/refresh/refresh_buffer'
67
+ require 'vedeu/refresh/refresh_group'
61
68
 
62
69
  require 'vedeu/cursor/cursor'
63
70
  require 'vedeu/cursor/cursors'
64
71
  require 'vedeu/cursor/move'
65
- require 'vedeu/cursor/refresh_cursor'
66
72
  require 'vedeu/cursor/reposition'
67
73
 
68
74
  require 'vedeu/esc/actions'
@@ -109,13 +115,6 @@ require 'vedeu/application/application_controller'
109
115
  require 'vedeu/application/application_helper'
110
116
  require 'vedeu/application/application_view'
111
117
 
112
- require 'vedeu/cli/generator/helpers'
113
- require 'vedeu/cli/generator/application'
114
- require 'vedeu/cli/generator/view'
115
- require 'vedeu/cli/generator/all'
116
-
117
- require 'vedeu/cli/main'
118
-
119
118
  require 'vedeu/distributed/uri'
120
119
  require 'vedeu/distributed/server'
121
120
  require 'vedeu/distributed/client'
@@ -154,13 +153,10 @@ require 'vedeu/output/presentation'
154
153
  require 'vedeu/output/compressor'
155
154
  require 'vedeu/output/style'
156
155
  require 'vedeu/output/text'
157
- require 'vedeu/output/virtual_buffer'
158
156
  require 'vedeu/output/html_char'
159
- require 'vedeu/output/refresh_group'
160
- require 'vedeu/output/refresh'
157
+
161
158
  require 'vedeu/output/output'
162
159
  require 'vedeu/output/viewport'
163
- require 'vedeu/output/virtual_terminal'
164
160
  require 'vedeu/output/wordwrap'
165
161
 
166
162
  require 'vedeu/api'
@@ -51,7 +51,7 @@ module Vedeu
51
51
  #
52
52
  # @return [TrueClass]
53
53
  def drb_retrieve_output!
54
- Vedeu.bind(:_drb_retrieve_output_) { Vedeu::VirtualBuffer.retrieve }
54
+ Vedeu.bind(:_drb_retrieve_output_) { Vedeu::VirtualBuffers.retrieve }
55
55
  end
56
56
 
57
57
  # Triggering this event with 'data' will push data into the running
@@ -63,7 +63,7 @@ module Vedeu
63
63
  # @return [TrueClass]
64
64
  def drb_store_output!
65
65
  Vedeu.bind(:_drb_store_output_) do |data|
66
- Vedeu::VirtualBuffer.store(Vedeu::Terminal.virtual.output(data))
66
+ Vedeu::VirtualBuffers.store(Vedeu::VirtualBuffer.output(data))
67
67
  end
68
68
  end
69
69
 
@@ -196,11 +196,13 @@ module Vedeu
196
196
  Vedeu.bind(:_mode_switch_) { fail Vedeu::ModeSwitch }
197
197
  end
198
198
 
199
- # Will cause the named interface to refresh, or when a name is not given,
200
- # will refresh all interfaces.
199
+ # Refreshes all registered interfaces or the named interface.
201
200
  #
202
- # @note: Hidden interfaces will be still refreshed in memory but not
203
- # shown.
201
+ # @note
202
+ # The interfaces will be refreshed in z-index order, meaning that
203
+ # interfaces with a lower z-index will be drawn first. This means
204
+ # overlapping interfaces will be drawn as specified.
205
+ # Hidden interfaces will be still refreshed in memory but not shown.
204
206
  #
205
207
  # @example
206
208
  # Vedeu.trigger(:_refresh_)
@@ -209,7 +211,7 @@ module Vedeu
209
211
  # @return [TrueClass]
210
212
  def refresh!
211
213
  Vedeu.bind(:_refresh_) do |name|
212
- name ? Vedeu::Refresh.by_name(name) : Vedeu::Refresh.all
214
+ name ? Vedeu::RefreshBuffer.by_name(name) : Vedeu::Refresh.all
213
215
  end
214
216
  end
215
217
 
@@ -222,7 +224,7 @@ module Vedeu
222
224
  # @return [TrueClass]
223
225
  def refresh_cursor!
224
226
  Vedeu.bind(:_refresh_cursor_) do |name|
225
- Vedeu::RefreshCursor.render(name)
227
+ Vedeu::RefreshCursor.by_name(name)
226
228
  end
227
229
  end
228
230
 
@@ -233,7 +235,9 @@ module Vedeu
233
235
  #
234
236
  # @return [TrueClass]
235
237
  def refresh_group!
236
- Vedeu.bind(:_refresh_group_) { |name| Vedeu::Refresh.by_group(name) }
238
+ Vedeu.bind(:_refresh_group_) do |name|
239
+ Vedeu::RefreshGroup.by_name(name)
240
+ end
237
241
  end
238
242
 
239
243
  # When triggered will cause Vedeu to trigger the `:_clear_` and
@@ -2,7 +2,7 @@ module Vedeu
2
2
 
3
3
  # Represents a {Vedeu::Terminal} view as a grid of {Vedeu::Cell} objects.
4
4
  #
5
- class VirtualTerminal
5
+ class VirtualBuffer
6
6
 
7
7
  # @!attribute [rw] renderer
8
8
  # @return [void]
@@ -16,13 +16,20 @@ module Vedeu
16
16
  # @return [Fixnum]
17
17
  attr_reader :width
18
18
 
19
- # Returns a new instance of Vedeu::VirtualTerminal.
19
+ # @param data [Array<Array<Vedeu::Views::Char>>]
20
+ # @return [Array<Array<Vedeu::Views::Char>>]
21
+ # @see Vedeu::VirtualBuffer#output
22
+ def self.output(data)
23
+ new(Vedeu.height, Vedeu.width, Vedeu::Renderers::HTML.new).output(data)
24
+ end
25
+
26
+ # Returns a new instance of Vedeu::VirtualBuffer.
20
27
  #
21
28
  # @param height [Fixnum]
22
29
  # @param width [Fixnum]
23
30
  # @param renderer [Object|Vedeu::Renderers::HTML] An object responding to
24
31
  # .render.
25
- # @return [Vedeu::VirtualTerminal]
32
+ # @return [Vedeu::VirtualBuffer]
26
33
  def initialize(height, width, renderer = Vedeu::Renderers::HTML.new)
27
34
  @height = height
28
35
  @width = width
@@ -34,7 +41,7 @@ module Vedeu
34
41
  #
35
42
  # @return [Array<Array<Vedeu::Views::Char>>]
36
43
  def cells
37
- @cells ||= new_virtual_terminal
44
+ @cells ||= new_virtual_buffer
38
45
  end
39
46
 
40
47
  # Read a single cell from the virtual terminal.
@@ -79,7 +86,7 @@ module Vedeu
79
86
  #
80
87
  # @return [Array<Array<Vedeu::Views::Char>>]
81
88
  def reset
82
- @cells = new_virtual_terminal
89
+ @cells = new_virtual_buffer
83
90
  end
84
91
  alias_method :clear, :reset
85
92
 
@@ -113,11 +120,11 @@ module Vedeu
113
120
  end
114
121
 
115
122
  # @return [Array<Array<Vedeu::Cell>>]
116
- # @see {Vedeu::VirtualTerminal#cells}
117
- def new_virtual_terminal
123
+ # @see {Vedeu::VirtualBuffer#cells}
124
+ def new_virtual_buffer
118
125
  Array.new(height) { Array.new(width) { Vedeu::Cell.new } }
119
126
  end
120
127
 
121
- end # VirtualTerminal
128
+ end # VirtualBuffer
122
129
 
123
130
  end # Vedeu
@@ -1,8 +1,8 @@
1
1
  module Vedeu
2
2
 
3
- # Store and retrieve {Vedeu::VirtualTerminal} objects.
3
+ # Store and retrieve {Vedeu::VirtualBuffer} objects.
4
4
  #
5
- # Each {Vedeu::VirtualTerminal} object is a copy of the current terminal
5
+ # Each {Vedeu::VirtualBuffer} object is a copy of the current terminal
6
6
  # including content but not as String objects but {Vedeu::Views::Char}
7
7
  # objects. Using {Vedeu::Views::Char} objects means that we can store the data
8
8
  # used to make up the displayed character, complete with its colour, position
@@ -13,7 +13,7 @@ module Vedeu
13
13
  # we can display the {Vedeu::Views::Char} in multiple ways (e.g. HTML) or in
14
14
  # multiple formats (e.g. JSON), and render/use that in an appropriate way.
15
15
  #
16
- module VirtualBuffer
16
+ module VirtualBuffers
17
17
 
18
18
  extend self
19
19
 
@@ -66,6 +66,6 @@ module Vedeu
66
66
  []
67
67
  end
68
68
 
69
- end # VirtualBuffer
69
+ end # VirtualBuffers
70
70
 
71
71
  end # Vedeu
@@ -164,13 +164,9 @@ module Vedeu
164
164
  #
165
165
  # @return [String]
166
166
  def visibility
167
- if visible?
168
- Vedeu::Escape.new(position: position, value: Vedeu::Esc.show_cursor)
167
+ value = visible? ? Vedeu::Esc.show_cursor : Vedeu::Esc.hide_cursor
169
168
 
170
- else
171
- Vedeu::Escape.new(position: position, value: Vedeu::Esc.hide_cursor)
172
-
173
- end
169
+ Vedeu::Escape.new(position: position, value: value)
174
170
  end
175
171
 
176
172
  end # Cursor
@@ -26,17 +26,13 @@ module Vedeu
26
26
 
27
27
  # @return [Vedeu::Cursor]
28
28
  def to
29
- result = entity.new(name: name,
30
- y: coordinate.y_position,
31
- x: coordinate.x_position,
32
- oy: y,
33
- ox: x).store
29
+ build_entity!
34
30
 
35
31
  Vedeu.trigger(:_clear_, name)
36
32
  Vedeu.trigger(:_refresh_, name)
37
33
  Vedeu.trigger(:_refresh_cursor_, name)
38
34
 
39
- result
35
+ new_entity
40
36
  end
41
37
 
42
38
  protected
@@ -59,6 +55,15 @@ module Vedeu
59
55
 
60
56
  private
61
57
 
58
+ def build_entity!
59
+ @_entity ||= entity.new(name: name,
60
+ y: coordinate.y_position,
61
+ x: coordinate.x_position,
62
+ oy: y,
63
+ ox: x).store
64
+ end
65
+ alias_method :new_entity, :build_entity!
66
+
62
67
  # @return [Vedeu::Coordinate]
63
68
  def coordinate
64
69
  @coordinate ||= Vedeu::Coordinate.new(name, y, x)
@@ -1,3 +1,7 @@
1
+ require 'vedeu/esc/actions'
2
+ require 'vedeu/esc/borders'
3
+ require 'vedeu/esc/colours'
4
+
1
5
  module Vedeu
2
6
 
3
7
  # Provides escape sequence strings for setting the cursor position and various
@@ -91,7 +91,7 @@ module Vedeu
91
91
  def store_immediate
92
92
  store_deferred
93
93
 
94
- Vedeu::Refresh.by_name(name)
94
+ Vedeu.trigger(:_refresh_, name)
95
95
 
96
96
  self
97
97
  end
@@ -27,7 +27,7 @@ module Vedeu
27
27
  if Vedeu::Configuration.drb?
28
28
  Vedeu.trigger(:_drb_store_output_, output)
29
29
 
30
- # Vedeu::Renderers::HTML.to_file(Vedeu::VirtualBuffer.retrieve)
30
+ # Vedeu::Renderers::HTML.to_file(Vedeu::VirtualBuffers.retrieve)
31
31
  end
32
32
 
33
33
  Vedeu.renderers.render(output) if Vedeu.ready?
@@ -24,7 +24,11 @@ module Vedeu
24
24
  # @param plugin [Vedeu::Plugin]
25
25
  # @return [Array<void>]
26
26
  def register(name, plugin = false)
27
- plugins << plugin if plugin && not_loaded?(name)
27
+ if plugin && not_loaded?(name)
28
+ Vedeu.log(type: :debug, message: "Registering plugin: #{name}")
29
+
30
+ plugins << plugin
31
+ end
28
32
  end
29
33
 
30
34
  # Find all installed plugins and store them.
@@ -36,7 +40,7 @@ module Vedeu
36
40
  Gem::Specification.each do |gem|
37
41
  next unless gem.name =~ /^#{prefix}/
38
42
 
39
- plugin_name = gem.name[/^#{prefix}_(.*)/, 1]
43
+ plugin_name = gem.name[/^#{prefix}(.*)/, 1]
40
44
 
41
45
  register(plugin_name, Vedeu::Plugin.new(plugin_name, gem))
42
46
  end
@@ -73,7 +77,7 @@ module Vedeu
73
77
 
74
78
  # @return [String]
75
79
  def prefix
76
- 'vedeu'
80
+ 'vedeu_'
77
81
  end
78
82
 
79
83
  end # Plugins
@@ -40,11 +40,11 @@ module Vedeu
40
40
  begin
41
41
  require gem_name unless enabled?
42
42
  rescue LoadError => error
43
- raise Vedeu::VedeuError,
44
- "Unable to load plugin #{gem_name} due to #{error}."
43
+ fail Vedeu::VedeuError,
44
+ "Unable to load plugin #{gem_name} due to #{error}."
45
45
  rescue => error
46
- raise Vedeu::VedeuError,
47
- "require '#{gem_name}' failed with #{error}."
46
+ fail Vedeu::VedeuError,
47
+ "require '#{gem_name}' failed with #{error}."
48
48
  end
49
49
 
50
50
  @enabled = true
@@ -0,0 +1,31 @@
1
+ module Vedeu
2
+
3
+ # @see Vedeu::Bindings::System#refresh!
4
+ class Refresh
5
+
6
+ # Refresh all registered interfaces.
7
+ #
8
+ # @return [Array<Vedeu::Interface>]
9
+ def self.all
10
+ new.all
11
+ end
12
+
13
+ # Return a new instance of Vedeu::Refresh.
14
+ #
15
+ # @return [Vedeu::Refresh]
16
+ def initialize; end
17
+
18
+ # Refresh all registered interfaces.
19
+ #
20
+ # @return [Array<Vedeu::Interface>]
21
+ def all
22
+ Vedeu.timer('Refreshing all') do
23
+ Vedeu.interfaces.zindexed.each do |interface|
24
+ Vedeu.trigger(:_refresh_, interface.name)
25
+ end
26
+ end
27
+ end
28
+
29
+ end # Refresh
30
+
31
+ end # Vedeu
@@ -0,0 +1,53 @@
1
+ module Vedeu
2
+
3
+ # Refreshes the given named interface.
4
+ #
5
+ # @example
6
+ # Vedeu.trigger(:_refresh_, name)
7
+ #
8
+ class RefreshBuffer
9
+
10
+ include Vedeu::Common
11
+
12
+ # @param name [String] The name of the interface to be refreshed using the
13
+ # named buffer.
14
+ # @return [Array|Vedeu::ModelNotFound]
15
+ def self.by_name(name)
16
+ new(name).by_name
17
+ end
18
+
19
+ # Return a new instance of Vedeu::RefreshBuffer.
20
+ #
21
+ # @param name [String]
22
+ # @return [Vedeu::RefreshBuffer]
23
+ def initialize(name)
24
+ @name = name
25
+ end
26
+
27
+ # @return [void]
28
+ def by_name
29
+ Vedeu.timer("Refresh Buffer: '#{buffer_name}'") do
30
+ Vedeu.buffers.by_name(buffer_name).render
31
+ end
32
+ end
33
+
34
+ protected
35
+
36
+ # # @!attribute [r] name
37
+ # @return [String]
38
+ attr_reader :name
39
+
40
+ private
41
+
42
+ # @raise [Vedeu::MissingRequired] When the name is empty or nil.
43
+ # @return [String]
44
+ def buffer_name
45
+ return name if present?(name)
46
+
47
+ fail Vedeu::MissingRequired,
48
+ 'Cannot refresh interface with an empty interface name.'
49
+ end
50
+
51
+ end # RefreshBuffer
52
+
53
+ end # Vedeu