vedeu 0.6.9 → 0.6.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/lib/vedeu/all.rb +3 -3
  4. data/lib/vedeu/api/external.rb +194 -0
  5. data/lib/vedeu/api/internal.rb +173 -0
  6. data/lib/vedeu/application/controller.rb +3 -2
  7. data/lib/vedeu/bindings/application.rb +1 -1
  8. data/lib/vedeu/bindings/drb.rb +2 -3
  9. data/lib/vedeu/bindings/movement.rb +1 -1
  10. data/lib/vedeu/buffers/all.rb +0 -2
  11. data/lib/vedeu/colours/translator.rb +2 -1
  12. data/lib/vedeu/common.rb +4 -2
  13. data/lib/vedeu/configuration/api.rb +1 -1
  14. data/lib/vedeu/configuration/cli.rb +1 -1
  15. data/lib/vedeu/cursors/repository.rb +1 -1
  16. data/lib/vedeu/editor/insert.rb +12 -13
  17. data/lib/vedeu/geometry/position.rb +1 -1
  18. data/lib/vedeu/models/cell.rb +35 -21
  19. data/lib/vedeu/models/escape.rb +18 -1
  20. data/lib/vedeu/models/page.rb +20 -10
  21. data/lib/vedeu/models/row.rb +18 -8
  22. data/lib/vedeu/models/views/char.rb +9 -7
  23. data/lib/vedeu/models/views/view.rb +1 -1
  24. data/lib/vedeu/output/compressor.rb +22 -14
  25. data/lib/vedeu/output/output.rb +1 -10
  26. data/lib/vedeu/output/renderers/escape_sequence.rb +8 -4
  27. data/lib/vedeu/output/renderers/file.rb +7 -23
  28. data/lib/vedeu/output/renderers/html.rb +47 -26
  29. data/lib/vedeu/output/renderers/json.rb +11 -16
  30. data/lib/vedeu/output/renderers/null.rb +1 -1
  31. data/lib/vedeu/output/renderers/renderer_options.rb +2 -1
  32. data/lib/vedeu/output/renderers/terminal.rb +7 -15
  33. data/lib/vedeu/output/renderers/text.rb +1 -1
  34. data/lib/vedeu/output/viewport.rb +154 -143
  35. data/lib/vedeu/repositories/collection.rb +2 -2
  36. data/lib/vedeu/repositories/model.rb +25 -26
  37. data/lib/vedeu/repositories/registerable.rb +9 -8
  38. data/lib/vedeu/repositories/repository.rb +21 -16
  39. data/lib/vedeu/repositories/store.rb +6 -4
  40. data/lib/vedeu/runtime/bootstrap.rb +7 -5
  41. data/lib/vedeu/runtime/main_loop.rb +2 -0
  42. data/lib/vedeu/runtime/router.rb +155 -149
  43. data/lib/vedeu/templating/decoder.rb +8 -5
  44. data/lib/vedeu/templating/encoder.rb +6 -4
  45. data/lib/vedeu/templating/template.rb +2 -2
  46. data/lib/vedeu/templating/view_template.rb +8 -7
  47. data/lib/vedeu/terminal/buffer.rb +132 -0
  48. data/lib/vedeu/terminal/terminal.rb +0 -5
  49. data/lib/vedeu/version.rb +1 -1
  50. data/lib/vedeu.rb +2 -2
  51. data/out_ +50 -0
  52. data/test/lib/vedeu/api/external_test.rb +62 -0
  53. data/test/lib/vedeu/{internal_api_test.rb → api/internal_test.rb} +6 -2
  54. data/test/lib/vedeu/application/controller_test.rb +3 -3
  55. data/test/lib/vedeu/bindings/application_test.rb +2 -2
  56. data/test/lib/vedeu/models/cell_test.rb +48 -17
  57. data/test/lib/vedeu/models/escape_test.rb +29 -7
  58. data/test/lib/vedeu/models/page_test.rb +70 -50
  59. data/test/lib/vedeu/models/row_test.rb +40 -20
  60. data/test/lib/vedeu/output/compressor_test.rb +12 -12
  61. data/test/lib/vedeu/output/output_test.rb +17 -23
  62. data/test/lib/vedeu/output/renderers/escape_sequence_test.rb +15 -11
  63. data/test/lib/vedeu/output/renderers/html_test.rb +66 -68
  64. data/test/lib/vedeu/output/renderers/json_test.rb +36 -83
  65. data/test/lib/vedeu/output/renderers/terminal_test.rb +22 -2
  66. data/test/lib/vedeu/output/viewport_test.rb +201 -197
  67. data/test/lib/vedeu/runtime/router_test.rb +144 -140
  68. data/test/lib/vedeu/terminal/buffer_test.rb +307 -0
  69. data/test/support/examples/material_colours_app.rb +2 -2
  70. data/test/support/templates/html_renderer.vedeu +24 -0
  71. metadata +14 -17
  72. data/lib/vedeu/api.rb +0 -190
  73. data/lib/vedeu/buffers/virtual_buffer.rb +0 -136
  74. data/lib/vedeu/buffers/virtual_buffers.rb +0 -77
  75. data/lib/vedeu/internal_api.rb +0 -173
  76. data/lib/vedeu/terminal/content.rb +0 -88
  77. data/test/lib/vedeu/api_test.rb +0 -58
  78. data/test/lib/vedeu/buffers/virtual_buffer_test.rb +0 -148
  79. data/test/lib/vedeu/buffers/virtual_buffers_test.rb +0 -73
  80. data/test/lib/vedeu/terminal/content_test.rb +0 -108
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aa52a712311446668b8375072ffb067393505997
4
- data.tar.gz: 27a321fa1c2ee654042819f339e5cb59a004a472
3
+ metadata.gz: c164a962e662469f503fd1e4a7c263e6d4c3eace
4
+ data.tar.gz: 8e28eb50a3e7c7c0f708ec2b118fc8537ecfdf6f
5
5
  SHA512:
6
- metadata.gz: f0a88fdd9757f20a6b4533b0e623c442b86487fbe3786293fd34323e1d5435352e73c41f6fe153bab9759eb1183615df21a8de50769aa43db1d57fa18e56b901
7
- data.tar.gz: 8d1182b45e8085ce541777444a813919b65f61e2afd0cbfd46d0c6a75cce0743e4e2cea163516240d969def501b6ed3356d3b4235afc75f72cc987c0512a4470
6
+ metadata.gz: 793c0295ed02d41e9e03b6e61417938f3c715464f4a765ed70f04fa386a9034389f659d9b058b565871d15707418dce5802024283797bcd41ea699570c04b30c
7
+ data.tar.gz: f15f247cb1fcd786e7479e2851234f38d3c7900de8ad0c6a3c691e6970eeaa91de583adfe01a395614cacf5f9373f870716db6751c18159e9931d677d4200a46
data/LICENSE.txt CHANGED
@@ -5,7 +5,7 @@ Copyright (c) 2013 Steve Klabnik - Monologger
5
5
  Copyright (c) 2013 Michael Grosser - Ruco
6
6
  (https://github.com/grosser/ruco)
7
7
  Note: Code from ruco's Window class was used as basis of
8
- Vedeu::Viewport.
8
+ Vedeu::Output::Viewport.
9
9
  Copyright (c) 2012 Piotr Murach - TTY
10
10
  (https://github.com/peter-murach/tty)
11
11
  Note: Code used from Plugins infrastructure.
data/lib/vedeu/all.rb CHANGED
@@ -17,7 +17,7 @@ require 'vedeu/configuration/configuration'
17
17
 
18
18
  require 'vedeu/terminal/mode'
19
19
  require 'vedeu/terminal/terminal'
20
- require 'vedeu/terminal/content'
20
+ require 'vedeu/terminal/buffer'
21
21
 
22
22
  require 'vedeu/runtime/main_loop'
23
23
  require 'vedeu/runtime/flags'
@@ -121,8 +121,8 @@ require 'vedeu/output/renderers/terminal'
121
121
  require 'vedeu/output/renderers/text'
122
122
  require 'vedeu/output/renderers'
123
123
 
124
- require 'vedeu/api'
125
- require 'vedeu/internal_api'
124
+ require 'vedeu/api/external'
125
+ require 'vedeu/api/internal'
126
126
 
127
127
  require 'vedeu/bindings/application'
128
128
  require 'vedeu/bindings/document'
@@ -0,0 +1,194 @@
1
+ module Vedeu
2
+
3
+ module API
4
+
5
+ # Provides the API to Vedeu. Methods therein, and classes
6
+ # belonging to this module expose Vedeu's core functionality.
7
+ #
8
+ # These methods are used in a variety of ways, sometimes in
9
+ # combination:
10
+ #
11
+ # # with parameters
12
+ # Vedeu.method_name(*params)
13
+ #
14
+ # # with a block
15
+ # Vedeu.method_name(*params) do
16
+ # # ...
17
+ # end
18
+ #
19
+ # # with other methods
20
+ # Vedeu.method_name.other_method
21
+ #
22
+ module External
23
+
24
+ extend Forwardable
25
+
26
+ module_function
27
+
28
+ # @!method configure
29
+ # @see Vedeu::Configuration.configure
30
+ # @!method configuration
31
+ # @see Vedeu::Configuration.configuration
32
+ def_delegators Vedeu::Configuration, :configure, :configuration
33
+
34
+ # @!method cursor
35
+ # @return [Vedeu::Cursors::Cursor]
36
+ def_delegators Vedeu::Cursors::Repository, :cursor
37
+
38
+ # @!method drb_restart
39
+ # @see Vedeu::Distributed::Server#restart
40
+ # @!method drb_start
41
+ # @see Vedeu::Distributed::Server#start
42
+ # @!method drb_status
43
+ # @see Vedeu::Distributed::Server#status
44
+ # @!method drb_stop
45
+ # @see Vedeu::Distributed::Server#stop
46
+ def_delegators Vedeu::Distributed::Server, :drb_restart, :drb_start,
47
+ :drb_status, :drb_stop
48
+
49
+ # @!method border
50
+ # @see Vedeu::Borders::DSL.border
51
+ def_delegators Vedeu::Borders::DSL, :border
52
+
53
+ # @!method geometry
54
+ # @see Vedeu::Geometry::DSL.geometry
55
+ def_delegators Vedeu::Geometry::DSL, :geometry
56
+
57
+ # @!method group
58
+ # @see Vedeu::DSL::Group.group
59
+ def_delegators Vedeu::DSL::Group, :group
60
+
61
+ # @!method keymap
62
+ # @see Vedeu::DSL::Keymap.keymap
63
+ def_delegators Vedeu::DSL::Keymap, :keymap
64
+
65
+ # @!method interface
66
+ # @see Vedeu::DSL::Interface.interface
67
+ def_delegators Vedeu::DSL::Interface, :interface
68
+
69
+ # @!method render
70
+ # @see Vedeu::DSL::View.render
71
+ # @!method renders
72
+ # @see Vedeu::DSL::View.renders
73
+ # @!method views
74
+ # @see Vedeu::DSL::View.views
75
+ def_delegators Vedeu::DSL::View, :renders, :render, :views
76
+
77
+ # @!method bind
78
+ # @see Vedeu::Events::Event.bind
79
+ # @!method bound?
80
+ # @see Vedeu::Events::Event.bound?
81
+ # @!method unbind
82
+ # @see Vedeu::Events::Event.unbind
83
+ def_delegators Vedeu::Events::Event, :bind, :bound?, :unbind
84
+
85
+ # @!method bind_alias
86
+ # @see Vedeu::Events::Aliases#bind_alias
87
+ # @!method unbind_alias
88
+ # @see Vedeu::Events::Aliases#unbind_alias
89
+ def_delegators Vedeu::Events::Aliases, :bind_alias, :unbind_alias
90
+
91
+ # @!method focus
92
+ # @see Vedeu::Models::Focus#focus
93
+ # @!method focus_by_name
94
+ # @see Vedeu::Models::Focus#focus_by_name
95
+ # @!method focussed?
96
+ # @see Vedeu::Models::Focus#focussed?
97
+ # @!method focus_next
98
+ # @see Vedeu::Models::Focus#focus_next
99
+ # @!method focus_previous
100
+ # @see Vedeu::Models::Focus#focus_previous
101
+ def_delegators Vedeu::Models::Focus, :focus, :focus_by_name, :focussed?,
102
+ :focus_next, :focus_previous
103
+
104
+ # @!method log
105
+ # @see Vedeu::Logging::Log.log
106
+ # @!method log_stdout
107
+ # @see Vedeu::Logging::Log.log_stdout
108
+ # @!method log_stderr
109
+ # @see Vedeu::Logging::Log.log_stderr
110
+ def_delegators Vedeu::Logging::Log, :log, :log_stdout, :log_stderr
111
+
112
+ # @!method keypress
113
+ # @see Vedeu::Input::Mapper.keypress
114
+ def_delegators Vedeu::Input::Mapper, :keypress
115
+
116
+ # @!method menu
117
+ # @see Vedeu::Menus::Menu.menu
118
+ def_delegators Vedeu::Menus::Menu, :menu
119
+
120
+ # @!method goto
121
+ # @see Vedeu::Runtime::Router#goto
122
+ def_delegators Vedeu::Runtime::Router, :goto
123
+
124
+ # @!method height
125
+ # @see Vedeu::Terminal#height
126
+ def_delegators Vedeu::Terminal, :height
127
+
128
+ # @!method width
129
+ # @see Vedeu::Terminal#width
130
+ def_delegators Vedeu::Terminal, :width
131
+
132
+ # @!method trigger
133
+ # @see Vedeu::Events::Trigger.trigger
134
+ def_delegators Vedeu::Events::Trigger, :trigger
135
+
136
+ # @!method exit
137
+ # @see Vedeu::Runtime::Application.stop
138
+ def_delegators Vedeu::Runtime::Application, :exit
139
+
140
+ # @!method clear
141
+ # @see Vedeu::Terminal#clear
142
+ def_delegators Vedeu::Terminal, :clear
143
+
144
+ # @!method clear_by_name
145
+ # @see Vedeu::Clear::NamedInterface.render
146
+ def_delegators Vedeu::Clear::NamedInterface, :clear_by_name
147
+
148
+ # @!method clear_by_group
149
+ # @see Vedeu::Clear::NamedGroup.render
150
+ def_delegators Vedeu::Clear::NamedGroup, :clear_by_group
151
+
152
+ # @!method hide_cursor
153
+ # @see Vedeu::Cursors::Cursor#hide
154
+ def_delegators Vedeu::Cursors::Cursor, :hide_cursor
155
+
156
+ # @!method show_cursor
157
+ # @see Vedeu::Cursors::Cursor#show
158
+ def_delegators Vedeu::Cursors::Cursor, :show_cursor
159
+
160
+ # @!method toggle_cursor
161
+ # @see Vedeu::Cursors::Cursor#toggle
162
+ def_delegators Vedeu::Cursors::Cursor, :toggle_cursor
163
+
164
+ # @!method hide_group
165
+ # @see Vedeu::Models::Group#hide
166
+ def_delegators Vedeu::Models::Group, :hide_group
167
+
168
+ # @!method show_group
169
+ # @see Vedeu::Models::Group#show
170
+ def_delegators Vedeu::Models::Group, :show_group
171
+
172
+ # @!method toggle_group
173
+ # @see Vedeu::Models::Group#toggle
174
+ def_delegators Vedeu::Models::Group, :toggle_group
175
+
176
+ # @!method hide_interface
177
+ # @see Vedeu::Models::Interface#hide
178
+ def_delegators Vedeu::Models::Interface, :hide_interface
179
+
180
+ # @!method show_interface
181
+ # @see Vedeu::Models::Interface#show
182
+ def_delegators Vedeu::Models::Interface, :show_interface
183
+
184
+ # @!method toggle_interface
185
+ # @see Vedeu::Models::Interface#toggle
186
+ def_delegators Vedeu::Models::Interface, :toggle_interface
187
+
188
+ end # External
189
+
190
+ end # API
191
+
192
+ extend Vedeu::API::External
193
+
194
+ end # Vedeu
@@ -0,0 +1,173 @@
1
+ module Vedeu
2
+
3
+ module API
4
+
5
+ module Internal
6
+
7
+ extend Forwardable
8
+
9
+ module_function
10
+
11
+ # Manipulate the repository of background colours.
12
+ #
13
+ # @example
14
+ # Vedeu.background_colours
15
+ #
16
+ # @!method background_colours
17
+ # @return [Vedeu::Colours::Backgrounds]
18
+ def_delegators Vedeu::Colours::Backgrounds, :background_colours
19
+
20
+ # Manipulate the repository of borders.
21
+ #
22
+ # @example
23
+ # Vedeu.borders
24
+ #
25
+ # @!method borders
26
+ # @return [Vedeu::Borders::Repository]
27
+ def_delegators Vedeu::Borders::Repository, :borders
28
+
29
+ # Manipulate the repository of buffers.
30
+ #
31
+ # @example
32
+ # Vedeu.buffers
33
+ #
34
+ # @!method buffers
35
+ # @return [Vedeu::Buffers::Repository]
36
+ def_delegators Vedeu::Buffers::Repository, :buffers
37
+
38
+ # Manipulate the repository of cursors.
39
+ #
40
+ # @example
41
+ # Vedeu.cursors
42
+ #
43
+ # @!method cursors
44
+ # @return [Vedeu::Cursors::Repository]
45
+ def_delegators Vedeu::Cursors::Repository, :cursors
46
+
47
+ # Allow debugging via the creation of stack traces courtesy of
48
+ # ruby-prof.
49
+ #
50
+ # @example
51
+ # Vedeu.debug
52
+ #
53
+ # @!method debug
54
+ # @return [Vedeu::Logging::Debug]
55
+ def_delegators Vedeu::Logging::Debug, :debug
56
+
57
+ # Manipulate the repository of documents.
58
+ #
59
+ # @example
60
+ # Vedeu.documents
61
+ #
62
+ # @!method documents
63
+ # @return [Vedeu::Editor::Documents]
64
+ def_delegators Vedeu::Editor::Documents, :documents
65
+
66
+ # Manipulate the repository of events.
67
+ #
68
+ # @example
69
+ # Vedeu.events
70
+ #
71
+ # @!method events
72
+ # @return [Vedeu::Events::Repository]
73
+ def_delegators Vedeu::Events::Repository, :events
74
+
75
+ # Manipulate the repository of foreground colours.
76
+ #
77
+ # @example
78
+ # Vedeu.foreground_colours
79
+ #
80
+ # @!method foreground_colours
81
+ # @return [Vedeu::Colours::Foregrounds]
82
+ def_delegators Vedeu::Colours::Foregrounds, :foreground_colours
83
+
84
+ # Manipulate the repository of geometries.
85
+ #
86
+ # @example
87
+ # Vedeu.geometries
88
+ #
89
+ # @!method geometries
90
+ # @return [Vedeu::Geometry::Repository]
91
+ def_delegators Vedeu::Geometry::Repository, :geometries
92
+
93
+ # Manipulate the repository of groups.
94
+ #
95
+ # @example
96
+ # Vedeu.groups
97
+ #
98
+ # @!method groups
99
+ # @return [Vedeu::Models::Groups]
100
+ def_delegators Vedeu::Models::Groups, :groups
101
+
102
+ # Manipulate the repository of interfaces.
103
+ #
104
+ # @example
105
+ # Vedeu.interfaces
106
+ #
107
+ # @!method interfaces
108
+ # @return [Vedeu::Models::Interfaces]
109
+ def_delegators Vedeu::Models::Interfaces, :interfaces
110
+
111
+ # Manipulate the repository of keymaps.
112
+ #
113
+ # @example
114
+ # Vedeu.keymaps
115
+ #
116
+ # @!method keymaps
117
+ # @return [Vedeu::Input::Keymaps]
118
+ def_delegators Vedeu::Input::Keymaps, :keymaps
119
+
120
+ # Manipulate the repository of menus.
121
+ #
122
+ # @example
123
+ # Vedeu.menus
124
+ #
125
+ # @!method menus
126
+ # @return [Vedeu::Menus::Repository]
127
+ def_delegators Vedeu::Menus::Repository, :menus
128
+
129
+ # Manipulate the internal flags.
130
+ #
131
+ # @!method ready?
132
+ # @!method ready!
133
+ # @return [Boolean]
134
+ def_delegators Vedeu::Runtime::Flags, :ready?, :ready!
135
+
136
+ # @example
137
+ # Vedeu.renderer
138
+ # Vedeu.renderers
139
+ #
140
+ # @!method renderer
141
+ # @see Vedeu::Renderers#renderer
142
+ # @!method renderers
143
+ # @see Vedeu::Renderers#renderers
144
+ def_delegators Vedeu::Renderers, :renderer, :renderers
145
+
146
+ # Instruct the terminal to resize. This will happen
147
+ # automatically as the terminal recieves SIGWINCH signals.
148
+ #
149
+ # @example
150
+ # Vedeu.resize
151
+ #
152
+ # @!method resize
153
+ # @see Vedeu::Terminal#resize
154
+ def_delegators Vedeu::Terminal, :resize
155
+
156
+ # Measure the execution time of the code in the given block.
157
+ #
158
+ # @example
159
+ # Vedeu.timer do
160
+ # # ... some code here ...
161
+ # end
162
+ #
163
+ # @!method timer
164
+ # @see Vedeu::Logging::Timer.timer
165
+ def_delegators Vedeu::Logging::Timer, :timer
166
+
167
+ end # Internal
168
+
169
+ end # API
170
+
171
+ extend Vedeu::API::Internal
172
+
173
+ end # Vedeu
@@ -31,7 +31,8 @@ module Vedeu
31
31
  def controller(controller_name = nil)
32
32
  @controller_name = controller_name
33
33
 
34
- Vedeu::Router.add_controller(controller_name, ancestors[0].to_s)
34
+ Vedeu::Runtime::Router.add_controller(controller_name,
35
+ ancestors[0].to_s)
35
36
  end
36
37
  alias_method :controller_name, :controller
37
38
 
@@ -64,7 +65,7 @@ module Vedeu
64
65
  # @return [Array<Symbol>]
65
66
  def action(*action_names)
66
67
  action_names.each do |action_name|
67
- Vedeu::Router.add_action(@controller_name, action_name)
68
+ Vedeu::Runtime::Router.add_action(@controller_name, action_name)
68
69
  end
69
70
  end
70
71
  alias_method :action_name, :action
@@ -21,7 +21,7 @@ module Vedeu
21
21
  # See {file:docs/events/application.md#\_goto_}
22
22
  def goto!
23
23
  Vedeu.bind(:_goto_) do |controller, action, **args|
24
- Vedeu::Router.goto(controller, action, **args)
24
+ Vedeu::Runtime::Router.goto(controller, action, **args)
25
25
  end
26
26
 
27
27
  Vedeu.bind_alias(:_action_, :_goto_)
@@ -40,15 +40,14 @@ module Vedeu
40
40
  # See {file:docs/events/drb.md#\_drb_retrieve_output_}
41
41
  def drb_retrieve_output!
42
42
  Vedeu.bind(:_drb_retrieve_output_) do
43
- Vedeu::Buffers::VirtualBuffers.retrieve
43
+ Vedeu::Terminal::Buffer.output
44
44
  end
45
45
  end
46
46
 
47
47
  # See {file:docs/events/drb.md#\_drb_store_output_}
48
48
  def drb_store_output!
49
49
  Vedeu.bind(:_drb_store_output_) do |data|
50
- Vedeu::Buffers::VirtualBuffers
51
- .store(Vedeu::Buffers::VirtualBuffer.output(data))
50
+ Vedeu::Terminal::Buffer.write(data)
52
51
  end
53
52
  end
54
53
 
@@ -23,7 +23,7 @@ module Vedeu
23
23
 
24
24
  # See {file:docs/events/movement.md#\_cursor_up_down_left_right_}
25
25
  def directional!
26
- [:down, :left, :right, :up].each do |direction|
26
+ %w(down left right up).each do |direction|
27
27
  Vedeu.bind("_cursor_#{direction}_".to_sym) do |name|
28
28
  Vedeu.cursors.by_name(name).send("move_#{direction}")
29
29
 
@@ -22,5 +22,3 @@ require 'vedeu/buffers/buffer'
22
22
  require 'vedeu/buffers/null'
23
23
  require 'vedeu/buffers/repository'
24
24
  require 'vedeu/buffers/refresh'
25
- require 'vedeu/buffers/virtual_buffer'
26
- require 'vedeu/buffers/virtual_buffers'
@@ -96,8 +96,9 @@ module Vedeu
96
96
  alias_method :to_s, :escape_sequence
97
97
  alias_method :to_str, :escape_sequence
98
98
 
99
+ # @param options [Hash] Ignored.
99
100
  # @return [String]
100
- def to_html
101
+ def to_html(_options = {})
101
102
  return colour if rgb?
102
103
 
103
104
  ''
data/lib/vedeu/common.rb CHANGED
@@ -34,9 +34,11 @@ module Vedeu
34
34
  name
35
35
  end
36
36
 
37
- # Returns a boolean indicating whether a variable has a useful value.
37
+ # Returns a boolean indicating whether a variable has a useful
38
+ # value.
38
39
  #
39
- # @param variable [String|Symbol|Array|Fixnum] The variable to check.
40
+ # @param variable [String|Symbol|Array|Fixnum] The variable to
41
+ # check.
40
42
  # @return [Boolean]
41
43
  def present?(variable)
42
44
  return true if variable.is_a?(Fixnum)
@@ -313,7 +313,7 @@ module Vedeu
313
313
  # @param renderer [Array<Class>|Class]
314
314
  # @return [Array<Class>]
315
315
  def renderer(*renderer)
316
- options[:renderers] = Vedeu::Configuration.renderers + renderer
316
+ options[:renderers] = renderer
317
317
  end
318
318
  alias_method :renderers, :renderer
319
319
 
@@ -17,7 +17,7 @@ module Vedeu
17
17
  #
18
18
  # Configure Vedeu via command-line arguments. Options set here
19
19
  # via arguments override the client application configuration
20
- # set via {Vedeu::API#configure}.
20
+ # set via {Vedeu::API::External#configure}.
21
21
  #
22
22
  # @param args [Array]
23
23
  # @return [Vedeu::Configuration::CLI]
@@ -11,7 +11,7 @@ module Vedeu
11
11
  class << self
12
12
 
13
13
  # @return [Vedeu::Cursors::Cursor]
14
- # @see Vedeu::API.cursor
14
+ # @see Vedeu::API::External.cursor
15
15
  def cursor
16
16
  cursors.by_name(Vedeu.focus) if Vedeu.focus
17
17
  end
@@ -29,16 +29,8 @@ module Vedeu
29
29
  # @return [Vedeu::Editor::Line|Vedeu::Editor::Lines]
30
30
  def insert
31
31
  if index
32
- if index <= 0
33
- collection.insert(0, entity)
32
+ collection.insert(index, entity)
34
33
 
35
- elsif index >= size
36
- collection << entity
37
-
38
- else
39
- collection.insert(index, entity)
40
-
41
- end
42
34
  else
43
35
  collection << entity
44
36
 
@@ -55,14 +47,21 @@ module Vedeu
55
47
  # @return [String]
56
48
  attr_reader :entity
57
49
 
58
- # @!attribute [r] index
59
- # @return [Fixnum]
60
- attr_reader :index
61
-
62
50
  # @!attribute [r] size
63
51
  # @return [Fixnum]
64
52
  attr_reader :size
65
53
 
54
+ private
55
+
56
+ # @return [Fixnum]
57
+ def index
58
+ return nil unless @index
59
+
60
+ @index = 0 if @index < 0
61
+ @index = size if @index > size
62
+ @index
63
+ end
64
+
66
65
  end # Insert
67
66
 
68
67
  end # Editor
@@ -23,7 +23,7 @@ module Vedeu
23
23
  new(y, x)
24
24
  end
25
25
 
26
- # @param value [Array<Fixnum>|Vedeu::Position]
26
+ # @param value [Array<Fixnum>|Vedeu::Geometry::Position]
27
27
  # @return [Vedeu::Geometry::Position]
28
28
  def self.coerce(value)
29
29
  if value.is_a?(self)
@@ -18,14 +18,6 @@ module Vedeu
18
18
  # @return [NilClass|String]
19
19
  attr_reader :value
20
20
 
21
- # @!attribute [r] x
22
- # @return [NilClass|Fixnum]
23
- attr_reader :x
24
-
25
- # @!attribute [r] y
26
- # @return [NilClass|Fixnum]
27
- attr_reader :y
28
-
29
21
  # Returns a new instance of Vedeu::Models::Cell.
30
22
  #
31
23
  # @param attributes [Hash<Symbol => Array<Symbol|String>,
@@ -34,14 +26,11 @@ module Vedeu
34
26
  # @option attributes style
35
27
  # [NilClass|Array<Symbol|String>|Symbol|String]
36
28
  # @option attributes value [NilClass|String]
37
- # @option attributes x [NilClass|Fixnum]
38
- # @option attributes y [NilClass|Fixnum]
29
+ # @option attributes position [Vedeu::Geometry::Position]
39
30
  # @return [Vedeu::Models::Cell]
40
31
  def initialize(attributes = {})
41
- @attributes = defaults.merge!(attributes)
42
-
43
- @attributes.each do |key, value|
44
- instance_variable_set("@#{key}", value)
32
+ defaults.merge!(attributes).each do |key, value|
33
+ instance_variable_set("@#{key}", value || defaults.fetch(key))
45
34
  end
46
35
  end
47
36
 
@@ -50,11 +39,37 @@ module Vedeu
50
39
  # @param other [Vedeu::Models::Cell]
51
40
  # @return [Boolean]
52
41
  def eql?(other)
53
- self.class == other.class && value == other.value && x == other.x &&
54
- y == other.y
42
+ self.class == other.class && value == other.value &&
43
+ position == other.position
55
44
  end
56
45
  alias_method :==, :eql?
57
46
 
47
+ # @return [Vedeu::Geometry::Position]
48
+ def position
49
+ Vedeu::Geometry::Position.coerce(@position)
50
+ end
51
+
52
+ # @return [Hash]
53
+ def to_hash
54
+ {
55
+ colour: colour.to_s,
56
+ style: style.to_s,
57
+ value: value.to_s,
58
+ position: position.to_s,
59
+ }
60
+ end
61
+
62
+ # @param options [Hash] Ignored.
63
+ # @return [String]
64
+ def to_html(_options = {})
65
+ ''
66
+ end
67
+
68
+ # @return [String]
69
+ def to_s
70
+ value.to_s
71
+ end
72
+
58
73
  private
59
74
 
60
75
  # Returns the default options/attributes for this class.
@@ -62,11 +77,10 @@ module Vedeu
62
77
  # @return [Hash<Symbol => void>]
63
78
  def defaults
64
79
  {
65
- colour: nil,
66
- style: nil,
67
- value: nil,
68
- x: nil,
69
- y: nil,
80
+ colour: nil,
81
+ style: nil,
82
+ value: '',
83
+ position: [1, 1],
70
84
  }
71
85
  end
72
86