vedeu 0.4.23 → 0.4.24

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/examples/cursor_app.rb +9 -4
  3. data/lib/vedeu/bindings.rb +36 -9
  4. data/lib/vedeu/cursor/move.rb +49 -55
  5. data/lib/vedeu/geometry/coordinate.rb +51 -38
  6. data/lib/vedeu/geometry/geometry.rb +44 -16
  7. data/lib/vedeu/geometry/position.rb +2 -6
  8. data/lib/vedeu/input/mapper.rb +2 -0
  9. data/lib/vedeu/models/char.rb +2 -2
  10. data/lib/vedeu/output/all.rb +1 -1
  11. data/lib/vedeu/output/border.rb +8 -6
  12. data/lib/vedeu/output/clear.rb +17 -19
  13. data/lib/vedeu/output/refresh.rb +4 -10
  14. data/lib/vedeu/output/renderers/all.rb +1 -2
  15. data/lib/vedeu/output/renderers/terminal.rb +3 -1
  16. data/lib/vedeu/output/viewport.rb +8 -8
  17. data/lib/vedeu/repositories/collections/all.rb +33 -6
  18. data/lib/vedeu/repositories/registerable.rb +21 -0
  19. data/lib/vedeu/repositories/repositories/borders.rb +2 -1
  20. data/lib/vedeu/repositories/repositories/buffers.rb +2 -1
  21. data/lib/vedeu/repositories/repositories/cursors.rb +1 -1
  22. data/lib/vedeu/repositories/repositories/events_repository.rb +1 -1
  23. data/lib/vedeu/repositories/repositories/geometries.rb +2 -1
  24. data/lib/vedeu/repositories/repositories/groups.rb +1 -1
  25. data/lib/vedeu/repositories/repositories/interfaces_repository.rb +2 -1
  26. data/lib/vedeu/repositories/repositories/keymaps.rb +1 -1
  27. data/lib/vedeu/repositories/repositories/menus.rb +1 -1
  28. data/lib/vedeu/repositories/repository.rb +1 -10
  29. data/lib/vedeu/support/log.rb +27 -13
  30. data/lib/vedeu/support/terminal.rb +1 -1
  31. data/lib/vedeu/support/timer.rb +11 -4
  32. data/test/lib/vedeu/cursor/move_test.rb +9 -7
  33. data/test/lib/vedeu/geometry/coordinate_test.rb +29 -21
  34. data/test/lib/vedeu/geometry/geometry_test.rb +14 -2
  35. data/test/lib/vedeu/repositories/collections/all_test.rb +71 -0
  36. data/vedeu.gemspec +2 -5
  37. metadata +6 -22
  38. data/lib/vedeu/repositories/collections/chars.rb +0 -8
  39. data/lib/vedeu/repositories/collections/events.rb +0 -8
  40. data/lib/vedeu/repositories/collections/interfaces.rb +0 -8
  41. data/lib/vedeu/repositories/collections/keys.rb +0 -8
  42. data/lib/vedeu/repositories/collections/lines.rb +0 -8
  43. data/lib/vedeu/repositories/collections/streams.rb +0 -8
  44. data/test/lib/vedeu/repositories/collections/chars_test.rb +0 -16
  45. data/test/lib/vedeu/repositories/collections/events_test.rb +0 -16
  46. data/test/lib/vedeu/repositories/collections/interfaces_test.rb +0 -16
  47. data/test/lib/vedeu/repositories/collections/keys_test.rb +0 -16
  48. data/test/lib/vedeu/repositories/collections/lines_test.rb +0 -16
  49. data/test/lib/vedeu/repositories/collections/streams_test.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 365b29b26543c213bcb8ca54063e55261dca7d47
4
- data.tar.gz: 8fbbb26db13f252b6cdba3ccaaf851718335a854
3
+ metadata.gz: d53834cae0f1a3dc8708b3706bf87d4014f16c90
4
+ data.tar.gz: 08bc9cd02ad0672be13d272172912d6b7975fd41
5
5
  SHA512:
6
- metadata.gz: 224fd3df8947ad37738184011a53c1814530cb8ee923f3e634a8e398710b42399aa15d9ad95cc57c2356da16208fb3c972dc9b0a92c0c2e9cb73d059074f1c86
7
- data.tar.gz: 2d99311229522afc70142dbca1f15d05f2cce5954548cf1f05d275a51545d7b729e67748c48b9ead6578457d503097418239826fd658501a8d2c5c59c1a5cec9
6
+ metadata.gz: 522ba5bc35cfb89d15c28b8784da90634a80106e3aaa463e039c9b1c01c310a4cec9e87dccc7b9fba55a6b5f81bd39573cf854241e203c7400bbe8652cc593d1
7
+ data.tar.gz: 44e0de6a4e2541b1672e0c79bfdf183bd4b2ce9e408525c41c79c9772ca160a6e6387d46950201ef05eb925672e3b6329347eaa61db186d08525af144fed640e
@@ -28,10 +28,15 @@ class VedeuCursorApp
28
28
  end
29
29
 
30
30
  keymap('_global_') do
31
- key(:up, 'k') { Vedeu.trigger(:_cursor_up_) }
32
- key(:right, 'l') { Vedeu.trigger(:_cursor_right_) }
33
- key(:down, 'j') { Vedeu.trigger(:_cursor_down_) }
34
- key(:left, 'h') { Vedeu.trigger(:_cursor_left_) }
31
+ key(:up) { Vedeu.trigger(:_cursor_up_) }
32
+ key(:right) { Vedeu.trigger(:_cursor_right_) }
33
+ key(:down) { Vedeu.trigger(:_cursor_down_) }
34
+ key(:left) { Vedeu.trigger(:_cursor_left_) }
35
+
36
+ key('k') { Vedeu.trigger(:_geometry_up_, 'main_interface') }
37
+ key('l') { Vedeu.trigger(:_geometry_right_, 'main_interface') }
38
+ key('j') { Vedeu.trigger(:_geometry_down_, 'main_interface') }
39
+ key('h') { Vedeu.trigger(:_geometry_left_, 'main_interface') }
35
40
 
36
41
  key('m') { Vedeu.trigger(:_maximise_, 'main_interface') }
37
42
  key('u') { Vedeu.trigger(:_unmaximise_, 'main_interface') }
@@ -58,10 +58,7 @@ module Vedeu
58
58
  # you should define to 'do things'. If the `escape` key is pressed, then
59
59
  # `key` is triggered with the argument `:escape`, also an internal event
60
60
  # `_mode_switch_` is triggered.
61
- Vedeu.bind(:_keypress_) do |key|
62
- Vedeu.trigger(:key, key)
63
- Vedeu.keypress(key)
64
- end
61
+ Vedeu.bind(:_keypress_) { |key| Vedeu.keypress(key) }
65
62
 
66
63
  # Will cause the triggering of the `:command` event; which you should define
67
64
  # to 'do things'.
@@ -95,19 +92,49 @@ module Vedeu
95
92
  end
96
93
 
97
94
  # @see {Vedeu::Move}
98
- Vedeu.bind(:_cursor_down_) { |name| Vedeu::Move.by_name(:down, name) }
95
+ Vedeu.bind(:_cursor_down_) do |name|
96
+ Vedeu::Move.by_name(Vedeu::Cursor, :down, name)
97
+ end
98
+
99
+ # @see {Vedeu::Move}
100
+ Vedeu.bind(:_cursor_left_) do |name|
101
+ Vedeu::Move.by_name(Vedeu::Cursor, :left, name)
102
+ end
103
+
104
+ # @see {Vedeu::Move}
105
+ Vedeu.bind(:_cursor_right_) do |name|
106
+ Vedeu::Move.by_name(Vedeu::Cursor, :right, name)
107
+ end
108
+
109
+ # @see {Vedeu::Move}
110
+ Vedeu.bind(:_cursor_up_) do |name|
111
+ Vedeu::Move.by_name(Vedeu::Cursor, :up, name)
112
+ end
99
113
 
100
114
  # @see {Vedeu::Move}
101
- Vedeu.bind(:_cursor_left_) { |name| Vedeu::Move.by_name(:left, name) }
115
+ Vedeu.bind(:_cursor_origin_) do |name|
116
+ Vedeu::Move.by_name(Vedeu::Cursor, :origin, name)
117
+ end
102
118
 
103
119
  # @see {Vedeu::Move}
104
- Vedeu.bind(:_cursor_right_) { |name| Vedeu::Move.by_name(:right, name) }
120
+ Vedeu.bind(:_geometry_down_) do |name|
121
+ Vedeu.geometries.by_name(name).move(1, 0)
122
+ end
105
123
 
106
124
  # @see {Vedeu::Move}
107
- Vedeu.bind(:_cursor_up_) { |name| Vedeu::Move.by_name(:up, name) }
125
+ Vedeu.bind(:_geometry_left_) do |name|
126
+ Vedeu.geometries.by_name(name).move(0, -1)
127
+ end
108
128
 
109
129
  # @see {Vedeu::Move}
110
- Vedeu.bind(:_cursor_origin_) { |name| Vedeu::Move.by_name(:origin, name) }
130
+ Vedeu.bind(:_geometry_right_) do |name|
131
+ Vedeu.geometries.by_name(name).move(0, 1)
132
+ end
133
+
134
+ # @see {Vedeu::Move}
135
+ Vedeu.bind(:_geometry_up_) do |name|
136
+ Vedeu.geometries.by_name(name).move(-1, 0)
137
+ end
111
138
 
112
139
  # @see {Vedeu::Move}
113
140
  Vedeu.bind(:_cursor_reset_) { |name| Vedeu.trigger(:_cursor_origin_, name) }
@@ -30,26 +30,6 @@ module Vedeu
30
30
  # irrespective of content.
31
31
  class Move
32
32
 
33
- extend Forwardable
34
-
35
- def_delegators :border,
36
- :height,
37
- :width,
38
- :x,
39
- :y
40
-
41
- # Returns an instance of Vedeu::Move.
42
- #
43
- # @param name [String] The name of the cursor.
44
- # @param dy [Fixnum] Move up (-1), or down (1), or no action (0).
45
- # @param dx [Fixnum] Move left (-1), or right (1), or no action (0).
46
- # @return [Move]
47
- def initialize(name, dy = 0, dx = 0)
48
- @name = name
49
- @dy = dy
50
- @dx = dx
51
- end
52
-
53
33
  # Move the named cursor, or that which is currently in focus in the
54
34
  # specified direction.
55
35
  #
@@ -60,61 +40,88 @@ module Vedeu
60
40
  # moved; when not given, the interface currently in focus determines which
61
41
  # cursor instance to move.
62
42
  # @return [Cursor]
63
- def self.by_name(direction, name = nil)
43
+ def self.by_name(entity, direction, name = nil)
64
44
  name = name ? name : Vedeu.focus
65
45
 
66
- Vedeu::Move.send(direction, name)
46
+ Vedeu::Move.send(direction, entity, name)
67
47
  end
68
48
 
69
49
  # Moves the cursor down by one row.
70
50
  #
51
+ # @param entity [Class]
71
52
  # @param name [String]
72
53
  # @return [Cursor]
73
- def self.down(name)
74
- new(name, 1, 0).move
54
+ def self.down(entity, name)
55
+ new(entity, name, 1, 0).move
75
56
  end
76
57
 
77
58
  # Moves the cursor left by one column.
78
59
  #
60
+ # @param entity [Class]
79
61
  # @param name [String]
80
62
  # @return [Cursor]
81
- def self.left(name)
82
- new(name, 0, -1).move
63
+ def self.left(entity, name)
64
+ new(entity, name, 0, -1).move
83
65
  end
84
66
 
85
67
  # Moves the cursor right by one column.
86
68
  #
69
+ # @param entity [Class]
87
70
  # @param name [String]
88
71
  # @return [Cursor]
89
- def self.right(name)
90
- new(name, 0, 1).move
72
+ def self.right(entity, name)
73
+ new(entity, name, 0, 1).move
91
74
  end
92
75
 
93
76
  # Moves the cursor up by one row.
94
77
  #
78
+ # @param entity [Class]
95
79
  # @param name [String]
96
80
  # @return [Cursor]
97
- def self.up(name)
98
- new(name, -1, 0).move
81
+ def self.up(entity, name)
82
+ new(entity, name, -1, 0).move
99
83
  end
100
84
 
101
85
  # Moves the cursor to the top left coordinate of the interface.
102
86
  #
87
+ # @param entity [Class]
103
88
  # @param name [String]
104
89
  # @return [Cursor]
105
- def self.origin(name)
106
- new(name, -2000, -2000).move
90
+ def self.origin(entity, name)
91
+ new(entity, name, -2000, -2000).move
92
+ end
93
+
94
+ # Returns an instance of Vedeu::Move.
95
+ #
96
+ # @param entity [Class]
97
+ # @param name [String] The name of the cursor.
98
+ # @param dy [Fixnum] Move up (-1), or down (1), or no action (0).
99
+ # @param dx [Fixnum] Move left (-1), or right (1), or no action (0).
100
+ # @return [Move]
101
+ def initialize(entity, name, dy = 0, dx = 0)
102
+ @entity = entity
103
+ @name = name
104
+ @dy = dy
105
+ @dx = dx
107
106
  end
108
107
 
109
108
  # Returns a newly positioned and stored Cursor.
110
109
  #
111
110
  # @return [Cursor]
112
111
  def move
113
- cursor = Vedeu::Cursor.new(attributes.merge!(new_attributes)).store
112
+ attrs = attributes.merge!(new_attributes)
113
+
114
+ model = entity.new(attrs).store
114
115
 
115
- Vedeu.trigger(:_refresh_cursor_, name)
116
+ if model.is_a?(Vedeu::Cursor)
117
+ Vedeu.trigger(:_refresh_cursor_, name)
116
118
 
117
- cursor
119
+ else
120
+ Vedeu.trigger(:_refresh_, name)
121
+
122
+ end
123
+
124
+ model
118
125
  end
119
126
 
120
127
  protected
@@ -127,6 +134,10 @@ module Vedeu
127
134
  # @return [Fixnum]
128
135
  attr_reader :dy
129
136
 
137
+ # @!attribute [r] entity
138
+ # @return [Fixnum]
139
+ attr_reader :entity
140
+
130
141
  # @!attribute [r] name
131
142
  # @return [String]
132
143
  attr_reader :name
@@ -145,22 +156,13 @@ module Vedeu
145
156
  # @return [Hash<Symbol => Fixnum>]
146
157
  def new_attributes
147
158
  {
148
- x: validator.x,
149
- y: validator.y,
159
+ x: x_position,
160
+ y: y_position,
150
161
  ox: ox,
151
162
  oy: oy,
152
163
  }
153
164
  end
154
165
 
155
- # Validates the new position of the cursor.
156
- #
157
- # @return [PositionValidator]
158
- def validator
159
- @validator ||= Vedeu::PositionValidator.validate(name,
160
- x_position,
161
- y_position)
162
- end
163
-
164
166
  # Returns the cursors x position based on its current offset.
165
167
  #
166
168
  # @return [Fixnum]
@@ -175,17 +177,9 @@ module Vedeu
175
177
  coordinate.y_position(oy)
176
178
  end
177
179
 
178
- # Retrieve the border for the named view: this will provide the geometry for
179
- # the cursor, ensuring it displays within the interface boundaries.
180
- #
181
- # @return (see Vedeu::Borders#by_name)
182
- def border
183
- @border ||= Vedeu.borders.by_name(name)
184
- end
185
-
186
180
  # @return [Coordinate]
187
181
  def coordinate
188
- @coordinate ||= Vedeu::Coordinate.new(height, width, x, y)
182
+ @coordinate ||= Vedeu::Coordinate.new(name)
189
183
  end
190
184
 
191
185
  # @return (see Vedeu::Cursors#by_name)
@@ -3,34 +3,24 @@ module Vedeu
3
3
  # Crudely corrects out of range values.
4
4
  class Coordinate
5
5
 
6
- # @!attribute [r] height
7
- # @return [Fixnum]
8
- attr_reader :height
9
-
10
- # @!attribute [r] width
11
- # @return [Fixnum]
12
- attr_reader :width
13
-
14
- # @!attribute [r] x
15
- # @return [Fixnum]
16
- attr_reader :x
17
-
18
- # @!attribute [r] y
19
- # @return [Fixnum]
20
- attr_reader :y
6
+ extend Forwardable
7
+
8
+ def_delegators :border,
9
+ :bx,
10
+ :bxn,
11
+ :by,
12
+ :byn,
13
+ :height,
14
+ :width,
15
+ :x,
16
+ :y
21
17
 
22
18
  # Returns a new instance of Vedeu::Coordinate.
23
19
  #
24
- # @param height [Fixnum]
25
- # @param width [Fixnum]
26
- # @param x [Fixnum]
27
- # @param y [Fixnum]
20
+ # @param name [String]
28
21
  # @return [Vedeu::Coordinate]
29
- def initialize(height, width, x, y)
30
- @height = height
31
- @width = width
32
- @x = x
33
- @y = y
22
+ def initialize(name)
23
+ @name = name
34
24
  end
35
25
 
36
26
  # Returns the maximum y coordinate for an area.
@@ -81,16 +71,17 @@ module Vedeu
81
71
  # @param index [Fixnum]
82
72
  # @return [Fixnum]
83
73
  def y_position(index = 0)
84
- if index <= 0
85
- y
74
+ value = if index <= 0
75
+ y
86
76
 
87
- elsif index > yn_index
88
- yn
77
+ elsif index > yn_index
78
+ yn
89
79
 
90
- else
91
- y_range[index]
80
+ else
81
+ y_range[index]
92
82
 
93
- end
83
+ end
84
+ validate_y(value)
94
85
  end
95
86
 
96
87
  # Returns the x coordinate for a given index.
@@ -105,16 +96,17 @@ module Vedeu
105
96
  # @param index [Fixnum]
106
97
  # @return [Fixnum]
107
98
  def x_position(index = 0)
108
- if index <= 0
109
- x
99
+ value = if index <= 0
100
+ x
110
101
 
111
- elsif index > xn_index
112
- xn
102
+ elsif index > xn_index
103
+ xn
113
104
 
114
- else
115
- x_range[index]
105
+ else
106
+ x_range[index]
116
107
 
117
- end
108
+ end
109
+ validate_x(value)
118
110
  end
119
111
 
120
112
  protected
@@ -125,6 +117,27 @@ module Vedeu
125
117
 
126
118
  private
127
119
 
120
+ # @return (see Vedeu::Borders#by_name)
121
+ def border
122
+ @border ||= Vedeu.borders.by_name(name)
123
+ end
124
+
125
+ # @param value [Fixnum]
126
+ # @return [Fixnum]
127
+ def validate_x(value)
128
+ value = value < bx ? bx : value
129
+ value = value > bxn ? bxn : value
130
+ value
131
+ end
132
+
133
+ # @param value [Fixnum]
134
+ # @return [Fixnum]
135
+ def validate_y(value)
136
+ value = value < by ? by : value
137
+ value = value > byn ? byn : value
138
+ value
139
+ end
140
+
128
141
  # Returns the maximum y index for an area.
129
142
  #
130
143
  # @example
@@ -105,35 +105,63 @@ module Vedeu
105
105
 
106
106
  # @return [String]
107
107
  def inspect
108
- "<Vedeu::Geometry x:#{x} xn:#{xn} y:#{y} yn:#{yn} maximise:#{maximised}>"
108
+ '<Vedeu::Geometry ' \
109
+ "x:#{x} " \
110
+ "xn:#{xn} " \
111
+ "y:#{y} " \
112
+ "yn:#{yn} " \
113
+ "centred:#{centred} " \
114
+ "maximise:#{maximised}>"
109
115
  end
110
116
 
111
- # @return [Vedeu::Geometry]
117
+ # @return [Vedeu::Geometry|NilClass]
112
118
  def maximise
113
- unless maximised?
114
- @maximised = true
119
+ return self if maximised?
120
+
121
+ @maximised = true
115
122
 
116
- work = store
123
+ work = store
117
124
 
118
- Vedeu.trigger(:_refresh_, name)
125
+ Vedeu.trigger(:_refresh_, name)
119
126
 
120
- work
121
- end
127
+ work
122
128
  end
123
129
 
124
- # @return [Vedeu::Geometry]
130
+ # @return [Vedeu::Geometry|NilClass]
125
131
  def unmaximise
126
- if maximised?
127
- Vedeu.trigger(:_clear_, name)
132
+ return self unless maximised?
133
+
134
+ Vedeu.trigger(:_clear_, name)
135
+
136
+ @maximised = false
137
+
138
+ work = store
128
139
 
129
- @maximised = false
140
+ Vedeu.trigger(:_refresh_, name)
141
+
142
+ work
143
+ end
144
+
145
+ # @param dy [Fixnum]
146
+ # @param dx [Fixnum]
147
+ # @return [Vedeu::Geometry]
148
+ def move(dy = 0, dx = 0)
149
+ new_attrs = {
150
+ centred: false,
151
+ maximised: false,
152
+ name: name,
153
+ x: (area.x + dx),
154
+ y: (area.y + dy),
155
+ xn: (area.xn + dx),
156
+ yn: (area.yn + dy),
157
+ }
130
158
 
131
- work = store
159
+ work = Vedeu::Geometry.new(new_attrs).store
132
160
 
133
- Vedeu.trigger(:_refresh_, name)
161
+ Vedeu.trigger(:_clear_)
162
+ Vedeu.trigger(:_refresh_, name)
134
163
 
135
- work
136
- end
164
+ work
137
165
  end
138
166
 
139
167
  private
@@ -70,13 +70,9 @@ module Vedeu
70
70
  # @yieldreturn [void] Returns the block wrapped in position escape
71
71
  # sequences.
72
72
  def to_s
73
- if block_given?
74
- [sequence, yield, sequence].join
73
+ return sequence unless block_given?
75
74
 
76
- else
77
- sequence
78
-
79
- end
75
+ [sequence, yield, sequence].join
80
76
  end
81
77
 
82
78
  private
@@ -10,6 +10,8 @@ module Vedeu
10
10
  # @param (see #initialize)
11
11
  # @return [Boolean]
12
12
  def self.keypress(key = nil, name = nil)
13
+ Vedeu.trigger(:key, key)
14
+
13
15
  return false unless key
14
16
 
15
17
  new(key, name).keypress
@@ -76,7 +76,7 @@ module Vedeu
76
76
 
77
77
  # @return [Vedeu::Position]
78
78
  def position
79
- @position ||= Vedeu::Position.coerce(attributes[:position])
79
+ @position ||= Vedeu::Position.coerce(@attributes[:position])
80
80
  end
81
81
 
82
82
  # Sets the position of the Char.
@@ -84,7 +84,7 @@ module Vedeu
84
84
  # @param value [Vedeu::Position]
85
85
  # @return [Vedeu::Position]
86
86
  def position=(value)
87
- @position = Vedeu::Position.coerce(value)
87
+ @position = @attributes[:position] = Vedeu::Position.coerce(value)
88
88
  end
89
89
 
90
90
  # @return [String]
@@ -2,11 +2,11 @@ require_relative 'esc'
2
2
  require_relative 'translator'
3
3
  require_relative 'background'
4
4
  require_relative 'foreground'
5
+ require_relative 'presentation'
5
6
  require_relative 'border'
6
7
  require_relative 'colour'
7
8
  require_relative 'compressor'
8
9
  require_relative 'clear'
9
- require_relative 'presentation'
10
10
  require_relative 'style'
11
11
  require_relative 'text'
12
12
  require_relative 'virtual_buffer'
@@ -159,13 +159,15 @@ module Vedeu
159
159
  return [] unless visible?
160
160
  return [] unless enabled?
161
161
 
162
- out = [top, bottom]
162
+ Vedeu::Timer.for(:debug, "Border rendering: #{name}") do
163
+ out = [top, bottom]
163
164
 
164
- height.times do |y|
165
- out << [left(y), right(y)]
166
- end
165
+ height.times do |y|
166
+ out << [left(y), right(y)]
167
+ end
167
168
 
168
- out.flatten
169
+ out.flatten
170
+ end
169
171
  end
170
172
 
171
173
  # @return [String]
@@ -316,7 +318,7 @@ module Vedeu
316
318
 
317
319
  # @return [Vedeu::Geometry]
318
320
  def geometry
319
- @geometry ||= Vedeu.geometries.by_name(name)
321
+ Vedeu.geometries.by_name(name)
320
322
  end
321
323
 
322
324
  # @return [Vedeu::Interface]
@@ -58,14 +58,14 @@ module Vedeu
58
58
  # @return [Array<Array<Vedeu::Char>>]
59
59
  def clear
60
60
  if visible?
61
- Vedeu.log(type: :output, message: "Clearing: '#{name}'")
62
-
63
- @clear ||= Array.new(height) do |iy|
64
- Array.new(width) do |ix|
65
- Vedeu::Char.new(value: ' ',
66
- colour: clear_colour,
67
- style: style,
68
- position: Vedeu::IndexPosition[iy, ix, *position])
61
+ Vedeu::Timer.for(:debug, "Clearing: #{name}") do
62
+ @clear ||= Array.new(height) do |iy|
63
+ Array.new(width) do |ix|
64
+ Vedeu::Char.new(value: ' ',
65
+ colour: clear_colour,
66
+ style: style,
67
+ position: Vedeu::IndexPosition[iy, ix, *position])
68
+ end
69
69
  end
70
70
  end
71
71
  else
@@ -106,13 +106,13 @@ module Vedeu
106
106
  # the terminal, or the colours of the interface.
107
107
  def clear_colour
108
108
  @colour ||= if use_terminal_colours?
109
- Vedeu::Colour.new(background: :default,
110
- foreground: :default)
109
+ Vedeu::Colour.new(background: :default,
110
+ foreground: :default)
111
111
 
112
- else
113
- colour
112
+ else
113
+ colour
114
114
 
115
- end
115
+ end
116
116
  end
117
117
 
118
118
  # @return [Hash<Symbol => Boolean>]
@@ -146,17 +146,15 @@ module Vedeu
146
146
  @_options ||= defaults.merge!(@options)
147
147
  end
148
148
 
149
- # @param iy [Fixnum]
150
- # @param ix [Fixnum]
151
149
  # @return [Vedeu::IndexPosition]
152
150
  def position
153
151
  @position ||= if clear_border?
154
- [y, x]
152
+ [y, x]
155
153
 
156
- else
157
- [by, bx]
154
+ else
155
+ [by, bx]
158
156
 
159
- end
157
+ end
160
158
  end
161
159
 
162
160
  # @return [Boolean] Indicates whether the default terminal colours should be
@@ -10,11 +10,9 @@ module Vedeu
10
10
  #
11
11
  # @return [Array]
12
12
  def all
13
- message = "Refreshing all interfaces"
13
+ message = 'Refreshing all interfaces'
14
14
 
15
- Vedeu.log(type: :info, message: message)
16
-
17
- Vedeu::Timer.for(message) do
15
+ Vedeu::Timer.for(:info, message) do
18
16
  Vedeu.interfaces.registered.each { |name| by_name(name) }
19
17
  end
20
18
  end
@@ -34,9 +32,7 @@ module Vedeu
34
32
  def by_group(group_name)
35
33
  message = "Refreshing group: '#{group_name}'"
36
34
 
37
- Vedeu.log(type: :info, message: message)
38
-
39
- Vedeu::Timer.for(message) do
35
+ Vedeu::Timer.for(:info, message) do
40
36
  Vedeu.groups.find!(group_name).members.each { |name| by_name(name) }
41
37
  end
42
38
  end
@@ -49,9 +45,7 @@ module Vedeu
49
45
  def by_name(name)
50
46
  message = "Refreshing interface: '#{name}'"
51
47
 
52
- Vedeu.log(type: :info, message: message)
53
-
54
- Vedeu::Timer.for(message) { Vedeu.buffers.by_name(name).render }
48
+ Vedeu::Timer.for(:info, message) { Vedeu.buffers.by_name(name).render }
55
49
  end
56
50
 
57
51
  end # Refresh