vedeu 0.4.11 → 0.4.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +736 -0
  3. data/Rakefile +7 -0
  4. data/bin/vedeu_drb_server +1 -1
  5. data/config/rubocop_disabled.yml +50 -0
  6. data/config/rubocop_enabled.yml +1044 -0
  7. data/examples/borders_app.rb +3 -1
  8. data/examples/colours_app.rb +3 -1
  9. data/examples/configuration_app.rb +1 -1
  10. data/examples/cursor_app.rb +4 -1
  11. data/examples/drb_app.rb +3 -1
  12. data/examples/focus_app.rb +1 -1
  13. data/examples/geometry_app.rb +3 -1
  14. data/examples/hello_world.rb +3 -1
  15. data/examples/lines_app.rb +3 -1
  16. data/examples/typed_commands/typed_commands_app.rb +1 -1
  17. data/examples/view_templates_app/view_templates_app.rb +3 -1
  18. data/lib/vedeu/api.rb +4 -3
  19. data/lib/vedeu/bindings.rb +1 -1
  20. data/lib/vedeu/configuration/api.rb +1 -1
  21. data/lib/vedeu/configuration/cli.rb +3 -2
  22. data/lib/vedeu/configuration/configuration.rb +1 -1
  23. data/lib/vedeu/cursor/cursor.rb +2 -2
  24. data/lib/vedeu/cursor/refresh_cursor.rb +3 -1
  25. data/lib/vedeu/distributed/templates/default_configuration.vedeu +1 -1
  26. data/lib/vedeu/events/event.rb +3 -5
  27. data/lib/vedeu/geometry/position.rb +1 -1
  28. data/lib/vedeu/input/all.rb +1 -1
  29. data/lib/vedeu/input/key.rb +5 -8
  30. data/lib/vedeu/models/all.rb +9 -12
  31. data/lib/vedeu/models/interface.rb +1 -1
  32. data/lib/vedeu/models/menu.rb +1 -1
  33. data/lib/vedeu/output/border.rb +18 -14
  34. data/lib/vedeu/output/clear.rb +10 -3
  35. data/lib/vedeu/output/esc.rb +4 -14
  36. data/lib/vedeu/output/html_char.rb +11 -7
  37. data/lib/vedeu/output/null_border.rb +10 -0
  38. data/lib/vedeu/output/presentation.rb +6 -22
  39. data/lib/vedeu/output/refresh.rb +0 -11
  40. data/lib/vedeu/output/renderers/terminal_renderer.rb +1 -1
  41. data/lib/vedeu/output/translator.rb +5 -5
  42. data/lib/vedeu/output/viewport.rb +12 -9
  43. data/lib/vedeu/repositories/collections.rb +6 -0
  44. data/lib/vedeu/support/visible.rb +17 -12
  45. data/lib/vedeu/traps.rb +3 -3
  46. data/test/lib/vedeu/configuration/cli_test.rb +1 -1
  47. data/test/lib/vedeu/output/null_border_test.rb +14 -0
  48. data/test/lib/vedeu/output/refresh_test.rb +0 -21
  49. data/test/lib/vedeu/support/coercions_test.rb +5 -5
  50. data/test/lib/vedeu/support/common_test.rb +1 -1
  51. data/test/lib/vedeu/support/visible_test.rb +10 -5
  52. data/test/test_helper.rb +2 -2
  53. data/vedeu.gemspec +3 -2
  54. metadata +22 -5
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate borders.
9
+ #
8
10
  class VedeuBordersApp
9
11
  include Vedeu
10
12
 
11
13
  configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  debug!
14
16
  log '/tmp/vedeu_borders_app.log'
15
17
  end
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate colours.
9
+ #
8
10
  class VedeuColoursApp
9
11
  include Vedeu
10
12
 
11
13
  configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  debug!
14
16
  log '/tmp/vedeu_colours_app.log'
15
17
  end
@@ -19,7 +19,7 @@ class VedeuConfigurationApp
19
19
  include Vedeu
20
20
 
21
21
  configure do
22
- colour_mode 16777216
22
+ colour_mode 16_777_216
23
23
  debug!
24
24
  log '/tmp/vedeu_configuration_app.log'
25
25
  end
@@ -5,11 +5,14 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate cursors; their movement and effect on
9
+ # the viewport of the interface in focus.
10
+ #
8
11
  class VedeuCursorApp
9
12
  include Vedeu
10
13
 
11
14
  configure do
12
- colour_mode 16777216
15
+ colour_mode 16_777_216
13
16
  debug!
14
17
  log '/tmp/vedeu_cursor_app.log'
15
18
  end
data/examples/drb_app.rb CHANGED
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate the DRb server.
9
+ #
8
10
  class VedeuTestApplication
9
11
  # include Vedeu
10
12
 
11
13
  Vedeu.configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  log '/tmp/vedeu_test_helper.log'
14
16
  debug!
15
17
  drb!
@@ -17,7 +17,7 @@ class VedeuFocusApp
17
17
  include Vedeu
18
18
 
19
19
  configure do
20
- colour_mode 16777216
20
+ colour_mode 16_777_216
21
21
  debug!
22
22
  log '/tmp/vedeu_focus_app.log'
23
23
  end
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate geometry.
9
+ #
8
10
  class VedeuGeometryApp
9
11
  include Vedeu
10
12
 
11
13
  configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  debug!
14
16
  log '/tmp/vedeu_geometry_app.log'
15
17
  end
@@ -8,11 +8,13 @@ trap('INT') { exit! }
8
8
  # require 'bundler/setup' # uncomment to remove the need to do `bundle exec`.
9
9
  require 'vedeu'
10
10
 
11
+ # An example application to demonstrate 'Hello World'.
12
+ #
11
13
  class HelloWorldApp
12
14
  include Vedeu
13
15
 
14
16
  configure do
15
- colour_mode 16777216
17
+ colour_mode 16_777_216
16
18
  debug!
17
19
  log '/tmp/vedeu_hello_world.log'
18
20
  end
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate interface lines.
9
+ #
8
10
  class VedeuLinesApp
9
11
  include Vedeu
10
12
 
11
13
  configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  debug!
14
16
  log '/tmp/vedeu_lines_app.log'
15
17
  end
@@ -9,7 +9,7 @@ class VedeuTypedCommands
9
9
  include Vedeu
10
10
 
11
11
  configure do
12
- colour_mode 16777216
12
+ colour_mode 16_777_216
13
13
  debug!
14
14
  log '/tmp/vedeu_typed_commands_app.log'
15
15
  end
@@ -5,11 +5,13 @@ $LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
5
5
 
6
6
  require 'vedeu'
7
7
 
8
+ # An example application to demonstrate templates.
9
+ #
8
10
  class VedeuViewTemplateApp
9
11
  include Vedeu
10
12
 
11
13
  configure do
12
- colour_mode 16777216
14
+ colour_mode 16_777_216
13
15
  debug!
14
16
  log '/tmp/vedeu_view_templates_app.log'
15
17
  end
data/lib/vedeu/api.rb CHANGED
@@ -92,14 +92,15 @@ module Vedeu
92
92
 
93
93
  # @!method bind
94
94
  # @see Vedeu::Event.bind
95
- # @!method trigger
96
- # @see Vedeu::Event.trigger
97
95
  # @!method unbind
98
96
  # @see Vedeu::Event.unbind
99
97
  def_delegators Vedeu::Event, :bind,
100
- :trigger,
101
98
  :unbind
102
99
 
100
+ # @!method trigger
101
+ # @see Vedeu::Trigger.trigger
102
+ def_delegators Vedeu::Trigger, :trigger
103
+
103
104
  # @!method configure
104
105
  # @see Vedeu::Configuration.configure
105
106
  # @!method configuration
@@ -195,7 +195,7 @@ module Vedeu
195
195
 
196
196
  # Will cause the named cursor to refresh, or the cursor of the interface
197
197
  # which is currently in focus.
198
- Vedeu.bind(:_refresh_cursor_) { |name| Vedeu::Refresh.cursor(name) }
198
+ Vedeu.bind(:_refresh_cursor_) { |name| Vedeu::RefreshCursor.render(name) }
199
199
 
200
200
  # Will cause all interfaces in the named group to refresh.
201
201
  Vedeu.bind(:_refresh_group_) { |name| Vedeu::Refresh.by_group(name) }
@@ -398,7 +398,7 @@ module Vedeu
398
398
  # @param value [Fixnum]
399
399
  # @return [Boolean]
400
400
  def valid_colour_mode?(value)
401
- value.is_a?(Fixnum) && [8, 16, 256, 16777216].include?(value)
401
+ value.is_a?(Fixnum) && [8, 16, 256, 16_777_216].include?(value)
402
402
  end
403
403
 
404
404
  # Checks that the value provided to {#exit_key}, {#focus_next_key},
@@ -75,7 +75,7 @@ module Vedeu
75
75
  opts.on('-C', '--colour-mode [COLOURS]', Integer,
76
76
  'Run application in either `8`, `16`, `256` or `16777216` ' \
77
77
  'colour mode.') do |colours|
78
- if [8, 16, 256, 16777216].include?(colours)
78
+ if [8, 16, 256, 16_777_216].include?(colours)
79
79
  options[:colour_mode] = colours
80
80
 
81
81
  else
@@ -93,7 +93,8 @@ module Vedeu
93
93
  options[:drb] = true
94
94
  end
95
95
 
96
- opts.on('--drb-host', 'Set the hostname/IP for the DRb server.') do |hostname|
96
+ opts.on('--drb-host',
97
+ 'Set the hostname/IP for the DRb server.') do |hostname|
97
98
  #options[:drb] = true
98
99
  options[:drb_host] = hostname
99
100
  end
@@ -282,7 +282,7 @@ module Vedeu
282
282
  # @return [Fixnum]
283
283
  def detect_colour_mode
284
284
  case ENV['TERM']
285
- when /-truecolor$/ then 16777216
285
+ when /-truecolor$/ then 16_777_216
286
286
  when /-256color$/, 'xterm' then 256
287
287
  when /-color$/, 'rxvt' then 16
288
288
  else 256
@@ -91,7 +91,7 @@ module Vedeu
91
91
  # @return [String]
92
92
  def to_s(&block)
93
93
  if block_given?
94
- [ sequence, yield, sequence ].join
94
+ [sequence, yield, sequence].join
95
95
 
96
96
  else
97
97
  sequence
@@ -124,7 +124,7 @@ module Vedeu
124
124
  #
125
125
  # @return [String]
126
126
  def sequence
127
- [ position, visibility ].join
127
+ [position, visibility].join
128
128
  end
129
129
 
130
130
  # Returns the escape sequence for setting the visibility of the cursor.
@@ -6,7 +6,7 @@ module Vedeu
6
6
  class RefreshCursor
7
7
 
8
8
  # @param (see #initialize)
9
- def self.render(name)
9
+ def self.render(name = Vedeu.focus)
10
10
  new(name).render
11
11
  end
12
12
 
@@ -20,6 +20,8 @@ module Vedeu
20
20
 
21
21
  # @return [Array]
22
22
  def render
23
+ Vedeu.log(type: :info, message: "Refreshing cursor: '#{name}'")
24
+
23
25
  Vedeu::Refresh.by_name(name) if refresh_view?
24
26
 
25
27
  Vedeu::Terminal.output(new_cursor.to_s)
@@ -1,5 +1,5 @@
1
1
  Vedeu.configure do
2
- colour_mode 16777216
2
+ colour_mode 16_777_216
3
3
  log '/tmp/vedeu_test_helper.log'
4
4
  debug!
5
5
  drb!
@@ -102,12 +102,10 @@ module Vedeu
102
102
  end
103
103
  alias_method :unevent, :unbind
104
104
 
105
- end
105
+ extend Forwardable
106
+
107
+ def_delegators Vedeu::Trigger, :trigger
106
108
 
107
- # @param (see Vedeu::Trigger.trigger)
108
- # @see Vedeu::Trigger.trigger
109
- def self.trigger(name, *args)
110
- Vedeu::Trigger.trigger(name, *args)
111
109
  end
112
110
 
113
111
  # Returns a new instance of Vedeu::Event.
@@ -63,7 +63,7 @@ module Vedeu
63
63
  # @return [String]
64
64
  def to_s(&block)
65
65
  if block_given?
66
- [ sequence, yield, sequence ].join
66
+ [sequence, yield, sequence].join
67
67
 
68
68
  else
69
69
  sequence
@@ -10,7 +10,7 @@ module Vedeu
10
10
  # Vedeu to run effectively.
11
11
  Vedeu::DSL::Keymap.keymap('_system_') do |keymap|
12
12
  Vedeu::Configuration.system_keys.each do |label, keypress|
13
- keymap.key(keypress) { Vedeu.trigger(("_" + label.to_s + "_").to_sym) }
13
+ keymap.key(keypress) { Vedeu.trigger(("_#{label}_").to_sym) }
14
14
  end
15
15
  end
16
16
 
@@ -4,6 +4,11 @@ module Vedeu
4
4
  #
5
5
  class Key
6
6
 
7
+ # @!attribute [r] input
8
+ # @return [String|Symbol] Returns the key defined.
9
+ attr_reader :input
10
+ alias_method :key, :input
11
+
7
12
  # Returns a new instance of Vedeu::Key.
8
13
  #
9
14
  # @param input [String|Symbol]
@@ -17,14 +22,6 @@ module Vedeu
17
22
  @output = block
18
23
  end
19
24
 
20
- # Returns the key defined.
21
- #
22
- # @return [String|Symbol]
23
- def input
24
- @input
25
- end
26
- alias_method :key, :input
27
-
28
25
  # Pressing the key will call the procedure.
29
26
  #
30
27
  # @return [|Symbol]
@@ -1,15 +1,12 @@
1
1
  require 'vedeu/repositories/all'
2
2
 
3
- require 'vedeu/models/cell'
4
- require 'vedeu/models/char'
5
- require 'vedeu/models/stream'
6
- require 'vedeu/models/line'
7
- require 'vedeu/models/interface'
8
- require 'vedeu/models/composition'
3
+ require_relative 'cell'
4
+ require_relative 'char'
5
+ require_relative 'stream'
6
+ require_relative 'line'
7
+ require_relative 'interface'
8
+ require_relative 'composition'
9
9
 
10
- require 'vedeu/models/focus'
11
- require 'vedeu/models/group'
12
- require 'vedeu/models/menu'
13
-
14
- module Vedeu
15
- end # Vedeu
10
+ require_relative 'focus'
11
+ require_relative 'group'
12
+ require_relative 'menu'
@@ -172,8 +172,8 @@ module Vedeu
172
172
  # @return [Array<Array<Vedeu::Char>>]
173
173
  def render
174
174
  [
175
- clear,
176
175
  border.render,
176
+ clear,
177
177
  viewport
178
178
  ]
179
179
  end
@@ -95,7 +95,7 @@ module Vedeu
95
95
  # Returns a new collection of items.
96
96
  # Each element of the collection is of the format:
97
97
  #
98
- # [ selected, current, item ]
98
+ # [selected, current, item]
99
99
  #
100
100
  # `selected` is a boolean indicating whether the item is selected.
101
101
  # `current` is a boolean indicating whether the item is current.
@@ -252,20 +252,20 @@ module Vedeu
252
252
  # @param prefix [String]
253
253
  # @return [String]
254
254
  def top_or_bottom(prefix)
255
- predicate = (prefix + '?').to_sym
256
- _left = (prefix + '_left').to_sym
257
- _right = (prefix + '_right').to_sym
258
- _horizontal = (prefix + '_horizontal').to_sym
255
+ predicate = (prefix + '?').to_sym
256
+ prefix_left = (prefix + '_left').to_sym
257
+ prefix_right = (prefix + '_right').to_sym
258
+ prefix_horizontal = (prefix + '_horizontal').to_sym
259
259
 
260
260
  return [] unless send(predicate)
261
261
 
262
262
  out = []
263
- out << border(send(_left), _left) if left?
263
+ out << border(send(prefix_left), prefix_left) if left?
264
264
 
265
265
  if prefix == 'top' && defined_value?(title)
266
266
  title_out = []
267
267
  width.times do |ix|
268
- title_out << border(horizontal, _horizontal, nil, ix)
268
+ title_out << border(horizontal, prefix_horizontal, nil, ix)
269
269
  end
270
270
 
271
271
  truncate = title.chomp.slice(0..(width - 5))
@@ -279,12 +279,12 @@ module Vedeu
279
279
 
280
280
  else
281
281
  width.times do |ix|
282
- out << border(horizontal, _horizontal, nil, ix)
282
+ out << border(horizontal, prefix_horizontal, nil, ix)
283
283
  end
284
284
 
285
285
  end
286
286
 
287
- out << border(send(_right), _right) if right?
287
+ out << border(send(prefix_right), prefix_right) if right?
288
288
  out
289
289
  end
290
290
 
@@ -309,15 +309,19 @@ module Vedeu
309
309
 
310
310
  # The default values for a new instance of this class.
311
311
  #
312
+ # @note
313
+ # Using the '\uXXXX' variant produces gaps in the border, whilst the
314
+ # '\xXX' renders 'nicely'.
315
+ #
312
316
  # @return [Hash]
313
317
  def defaults
314
318
  {
315
- bottom_left: "\x6D", # └
316
- bottom_right: "\x6A", # ┘
319
+ bottom_left: "\x6D", # └ # \u2514
320
+ bottom_right: "\x6A", # ┘ # \u2518
317
321
  client: nil,
318
322
  colour: {},
319
323
  enabled: false,
320
- horizontal: "\x71", # ─
324
+ horizontal: "\x71", # ─ # \u2500
321
325
  name: '',
322
326
  show_bottom: true,
323
327
  show_left: true,
@@ -325,9 +329,9 @@ module Vedeu
325
329
  show_top: true,
326
330
  style: [],
327
331
  title: '',
328
- top_left: "\x6C", # ┌
329
- top_right: "\x6B", # ┐
330
- vertical: "\x78", # │
332
+ top_left: "\x6C", # ┌ # \u250C
333
+ top_right: "\x6B", # ┐ # \u2510
334
+ vertical: "\x78", # │ # \u2502
331
335
  }
332
336
  end
333
337
 
@@ -31,12 +31,12 @@ module Vedeu
31
31
  #
32
32
  # @return [Array<Array<Vedeu::Char>>]
33
33
  def clear
34
- @clear ||= Array.new(interface.height) do |iy|
35
- Array.new(interface.width) do |ix|
34
+ @clear ||= Array.new(interface.border.height) do |iy|
35
+ Array.new(interface.border.width) do |ix|
36
36
  Vedeu::Char.new({ value: ' ',
37
37
  colour: interface.colour,
38
38
  style: interface.style,
39
- position: Vedeu::IndexPosition[iy, ix, interface.top, interface.left] })
39
+ position: position(iy, ix) })
40
40
  end
41
41
  end
42
42
  end
@@ -64,6 +64,13 @@ module Vedeu
64
64
  # @return [Interface]
65
65
  attr_reader :interface
66
66
 
67
+ # @param iy [Fixnum]
68
+ # @param ix [Fixnum]
69
+ # @return [Vedeu::IndexPosition]
70
+ def position(iy, ix)
71
+ Vedeu::IndexPosition[iy, ix, interface.border.by, interface.border.bx]
72
+ end
73
+
67
74
  end # Clear
68
75
 
69
76
  end # Vedeu
@@ -121,7 +121,7 @@ module Vedeu
121
121
  def border(&block)
122
122
  return '' unless block_given?
123
123
 
124
- [ border_on, yield, border_off ].join
124
+ [border_on, yield, border_off].join
125
125
  end
126
126
 
127
127
  private
@@ -167,18 +167,12 @@ module Vedeu
167
167
 
168
168
  # @return [String]
169
169
  def clear
170
- [
171
- colour_reset,
172
- "\e[2J"
173
- ].join
170
+ [colour_reset, "\e[2J"].join
174
171
  end
175
172
 
176
173
  # @return [String]
177
174
  def clear_line
178
- [
179
- colour_reset,
180
- "\e[2K"
181
- ].join
175
+ [colour_reset, "\e[2K"].join
182
176
  end
183
177
 
184
178
  # @return [String]
@@ -233,11 +227,7 @@ module Vedeu
233
227
 
234
228
  # @return [String]
235
229
  def screen_exit
236
- [
237
- show_cursor,
238
- colour_reset,
239
- reset
240
- ].join
230
+ [show_cursor, colour_reset, reset].join
241
231
  end
242
232
 
243
233
  # @return [String]
@@ -37,7 +37,11 @@ module Vedeu
37
37
  def td_style
38
38
  return '' unless border || defined_value?(value)
39
39
 
40
- " style='background:#{bg};color:#{fg};border:1px #{bg} solid;#{border_style}'"
40
+ " style='" \
41
+ "background:#{bg};" \
42
+ "color:#{fg};" \
43
+ "border:1px #{bg} solid;" \
44
+ "#{border_style}'"
41
45
  end
42
46
 
43
47
  # @return [String]
@@ -55,12 +59,12 @@ module Vedeu
55
59
  when :left_vertical then border_css('left')
56
60
  when :right_vertical then border_css('right')
57
61
  when :bottom_horizontal then border_css('bottom')
58
- when :top_left then [border_css('top'), border_css('left')].join
59
- when :top_right then [border_css('top'), border_css('right')].join
60
- when :bottom_left then [border_css('bottom'), border_css('left')].join
61
- when :bottom_right then [border_css('bottom'), border_css('right')].join
62
- when :horizontal then ''
63
- when :vertical then ''
62
+ when :top_left then [border_css('top'), border_css('left')].join
63
+ when :top_right then [border_css('top'), border_css('right')].join
64
+ when :bottom_left then [border_css('bottom'), border_css('left')].join
65
+ when :bottom_right then [border_css('bottom'), border_css('right')].join
66
+ when :horizontal then ''
67
+ when :vertical then ''
64
68
  else
65
69
  # ... should not get here
66
70
  ''
@@ -33,11 +33,21 @@ module Vedeu
33
33
  interface.yn
34
34
  end
35
35
 
36
+ # @return [Fixnum]
37
+ def height
38
+ (by..byn).size
39
+ end
40
+
36
41
  # @return [Array]
37
42
  def render
38
43
  []
39
44
  end
40
45
 
46
+ # @return [Fixnum]
47
+ def width
48
+ (bx..bxn).size
49
+ end
50
+
41
51
  private
42
52
 
43
53
  # @!attribute [r] interface
@@ -7,9 +7,7 @@ module Vedeu
7
7
 
8
8
  # @return [Vedeu::Background|NilClass]
9
9
  def background
10
- if colour
11
- colour.background
12
- end
10
+ colour.background if colour
13
11
  end
14
12
 
15
13
  # @return [Vedeu::Colour]
@@ -24,16 +22,12 @@ module Vedeu
24
22
 
25
23
  # @return [Vedeu::Foreground|NilClass]
26
24
  def foreground
27
- if colour
28
- colour.foreground
29
- end
25
+ colour.foreground if colour
30
26
  end
31
27
 
32
28
  # @return [Vedeu::Background|NilClass]
33
29
  def parent_background
34
- if parent_colour
35
- parent_colour.background
36
- end
30
+ parent_colour.background if parent_colour
37
31
  end
38
32
 
39
33
  # @return [String|NilClass]
@@ -43,9 +37,7 @@ module Vedeu
43
37
 
44
38
  # @return [Vedeu::Foreground|NilClass]
45
39
  def parent_foreground
46
- if parent_colour
47
- parent_colour.foreground
48
- end
40
+ parent_colour.foreground if parent_colour
49
41
  end
50
42
 
51
43
  # @return [String|NilClass]
@@ -91,11 +83,7 @@ module Vedeu
91
83
  #
92
84
  # @return [String]
93
85
  def render_colour
94
- [
95
- colour,
96
- yield,
97
- parent_colour
98
- ].join
86
+ [colour, yield, parent_colour].join
99
87
  end
100
88
 
101
89
  # @return [String]
@@ -115,11 +103,7 @@ module Vedeu
115
103
  #
116
104
  # @return [String]
117
105
  def render_style
118
- [
119
- style,
120
- yield,
121
- parent_style
122
- ].join
106
+ [style, yield, parent_style].join
123
107
  end
124
108
 
125
109
  end # Presentation