vedeu 0.6.69 → 0.6.70
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/api.md +4 -0
- data/lib/vedeu/all.rb +5 -7
- data/lib/vedeu/borders/all.rb +1 -0
- data/lib/vedeu/borders/repository.rb +2 -6
- data/lib/vedeu/borders/set_attribute.rb +71 -0
- data/lib/vedeu/buffers/buffer.rb +6 -1
- data/lib/vedeu/buffers/refresh.rb +6 -1
- data/lib/vedeu/common.rb +2 -1
- data/lib/vedeu/configuration/configuration.rb +1 -1
- data/lib/vedeu/cursors/all.rb +1 -0
- data/lib/vedeu/cursors/cursor.rb +8 -27
- data/lib/vedeu/cursors/move.rb +69 -0
- data/lib/vedeu/cursors/repository.rb +1 -1
- data/lib/vedeu/dsl/all.rb +2 -0
- data/lib/vedeu/dsl/composition.rb +6 -1
- data/lib/vedeu/dsl/lines.rb +21 -0
- data/lib/vedeu/dsl/streams.rb +21 -0
- data/lib/vedeu/groups/clear.rb +6 -1
- data/lib/vedeu/groups/refresh.rb +6 -1
- data/lib/vedeu/input/capture.rb +6 -1
- data/lib/vedeu/interfaces/clear.rb +6 -1
- data/lib/vedeu/interfaces/interface.rb +20 -8
- data/lib/vedeu/models/all.rb +1 -0
- data/lib/vedeu/models/focus.rb +19 -14
- data/lib/vedeu/models/page.rb +5 -0
- data/lib/vedeu/models/row.rb +5 -0
- data/lib/vedeu/models/toggleable.rb +6 -1
- data/lib/vedeu/null/all.rb +0 -1
- data/lib/vedeu/output/all.rb +0 -2
- data/lib/vedeu/output/compressor.rb +2 -1
- data/lib/vedeu/output/wordwrap.rb +6 -1
- data/lib/vedeu/output/write.rb +2 -0
- data/lib/vedeu/presentation/all.rb +17 -0
- data/lib/vedeu/presentation/background.rb +47 -0
- data/lib/vedeu/presentation/colour.rb +42 -0
- data/lib/vedeu/presentation/foreground.rb +47 -0
- data/lib/vedeu/{output/presentation → presentation}/presentation.rb +0 -0
- data/lib/vedeu/{output/presentation → presentation}/style.rb +0 -0
- data/lib/vedeu/presentation/styles.rb +45 -0
- data/lib/vedeu/{output/renderers → renderers}/all.rb +5 -5
- data/lib/vedeu/{output/renderers → renderers}/file.rb +0 -0
- data/lib/vedeu/{output/renderers → renderers}/html.rb +0 -0
- data/lib/vedeu/{output/renderers → renderers}/json.rb +0 -0
- data/lib/vedeu/{output/renderers → renderers}/options.rb +5 -1
- data/lib/vedeu/{output → renderers}/templates/html_renderer.vedeu +0 -0
- data/lib/vedeu/{output/renderers → renderers}/terminal.rb +1 -1
- data/lib/vedeu/repositories/all.rb +1 -0
- data/lib/vedeu/repositories/parent.rb +32 -0
- data/lib/vedeu/repositories/repositories.rb +1 -0
- data/lib/vedeu/runtime/flags.rb +2 -0
- data/lib/vedeu/templating/view_template.rb +6 -1
- data/lib/vedeu/version.rb +1 -1
- data/lib/vedeu/views/all.rb +20 -0
- data/lib/vedeu/{models/views → views}/char.rb +33 -21
- data/lib/vedeu/views/chars.rb +15 -0
- data/lib/vedeu/{models/views → views}/composition.rb +0 -0
- data/lib/vedeu/{models/views → views}/html_char.rb +0 -0
- data/lib/vedeu/{models/views → views}/line.rb +17 -21
- data/lib/vedeu/views/lines.rb +15 -0
- data/lib/vedeu/{models/views → views}/stream.rb +16 -20
- data/lib/vedeu/views/streams.rb +15 -0
- data/lib/vedeu/{models/views → views}/view.rb +28 -17
- data/lib/vedeu/views/view_collection.rb +15 -0
- data/lib/vedeu.rb +2 -0
- data/test/lib/vedeu/borders/set_attribute_test.rb +62 -0
- data/test/lib/vedeu/common_test.rb +6 -0
- data/test/lib/vedeu/cursors/cursor_test.rb +0 -8
- data/test/lib/vedeu/cursors/move_test.rb +73 -0
- data/test/lib/vedeu/cursors/repository_test.rb +3 -1
- data/test/lib/vedeu/dsl/lines_test.rb +12 -0
- data/test/lib/vedeu/dsl/streams_test.rb +13 -0
- data/test/lib/vedeu/events/aliases_test.rb +4 -4
- data/test/lib/vedeu/groups/refresh_test.rb +0 -6
- data/test/lib/vedeu/input/store_test.rb +2 -2
- data/test/lib/vedeu/interfaces/interface_test.rb +6 -1
- data/test/lib/vedeu/models/focus_test.rb +25 -10
- data/test/lib/vedeu/models/page_test.rb +6 -0
- data/test/lib/vedeu/models/row_test.rb +12 -0
- data/test/lib/vedeu/presentation/background_test.rb +72 -0
- data/test/lib/vedeu/presentation/colour_test.rb +67 -0
- data/test/lib/vedeu/presentation/foreground_test.rb +73 -0
- data/test/lib/vedeu/{output/presentation → presentation}/presentation_test.rb +0 -0
- data/test/lib/vedeu/{output/presentation → presentation}/style_test.rb +0 -0
- data/test/lib/vedeu/{output/presentation → presentation}/styles_test.rb +7 -9
- data/test/lib/vedeu/{output/renderers → renderers}/all_test.rb +3 -2
- data/test/lib/vedeu/{output/renderers → renderers}/file_test.rb +0 -0
- data/test/lib/vedeu/{output/renderers → renderers}/html_test.rb +2 -1
- data/test/lib/vedeu/{output/renderers → renderers}/json_test.rb +1 -0
- data/test/lib/vedeu/{output/renderers → renderers}/options_test.rb +10 -6
- data/test/lib/vedeu/{output/renderers → renderers}/terminal_test.rb +0 -0
- data/test/lib/vedeu/repositories/repositories_test.rb +1 -0
- data/test/lib/vedeu/runtime/flags_test.rb +2 -0
- data/test/lib/vedeu/templating/helpers_test.rb +15 -6
- data/test/lib/vedeu/{models/views → views}/char_test.rb +0 -0
- data/test/lib/vedeu/{models/views → views}/composition_test.rb +0 -0
- data/test/lib/vedeu/{models/views → views}/html_char_test.rb +0 -0
- data/test/lib/vedeu/{models/views → views}/line_test.rb +6 -1
- data/test/lib/vedeu/views/lines_test.rb +13 -0
- data/test/lib/vedeu/{models/views → views}/stream_test.rb +6 -1
- data/test/lib/vedeu/views/streams_test.rb +13 -0
- data/test/lib/vedeu/views/view_collection_test.rb +13 -0
- data/test/lib/vedeu/{models/views → views}/view_test.rb +6 -1
- data/test/support/examples/material_colours_app.rb +1 -1
- data/test/support/helpers/presentation_colour_test_class.rb +29 -0
- data/test/test_helper.rb +4 -0
- metadata +84 -56
- data/lib/vedeu/models/views/all.rb +0 -16
- data/lib/vedeu/null/view.rb +0 -26
- data/lib/vedeu/output/presentation/all.rb +0 -15
- data/lib/vedeu/output/presentation/colour.rb +0 -100
- data/lib/vedeu/output/presentation/styles.rb +0 -42
- data/test/lib/vedeu/null/view_test.rb +0 -31
- data/test/lib/vedeu/output/presentation/colour_test.rb +0 -172
File without changes
|
File without changes
|
@@ -2,14 +2,6 @@ module Vedeu
|
|
2
2
|
|
3
3
|
module Views
|
4
4
|
|
5
|
-
# A collection of {Vedeu::Views::Line} instances.
|
6
|
-
#
|
7
|
-
# @api private
|
8
|
-
#
|
9
|
-
class Lines < Vedeu::Repositories::Collection
|
10
|
-
|
11
|
-
end # Lines
|
12
|
-
|
13
5
|
# Represents a single row of the terminal. It is a container for
|
14
6
|
# {Vedeu::Views::Stream} objects. A line's width is determined by
|
15
7
|
# the {Vedeu::Geometries::Geometry} it belongs to.
|
@@ -17,15 +9,12 @@ module Vedeu
|
|
17
9
|
class Line
|
18
10
|
|
19
11
|
include Vedeu::Repositories::Model
|
12
|
+
include Vedeu::Repositories::Parent
|
20
13
|
include Vedeu::Presentation
|
21
14
|
|
22
15
|
collection Vedeu::Views::Streams
|
23
16
|
member Vedeu::Views::Stream
|
24
17
|
|
25
|
-
# @!attribute [r] attributes
|
26
|
-
# @return [Hash]
|
27
|
-
attr_reader :attributes
|
28
|
-
|
29
18
|
# @!attribute [rw] parent
|
30
19
|
# @return [Vedeu::Views::View]
|
31
20
|
attr_accessor :parent
|
@@ -35,14 +24,13 @@ module Vedeu
|
|
35
24
|
# @param attributes [Hash]
|
36
25
|
# @option attributes client [void]
|
37
26
|
# @option attributes colour [Vedeu::Colours::Colour]
|
27
|
+
# @option attributes name [String|Symbol]
|
38
28
|
# @option attributes parent [Vedeu::Views::View]
|
39
29
|
# @option attributes style [Vedeu::Presentation::Style]
|
40
30
|
# @option attributes value [Vedeu::Views::Streams]
|
41
31
|
# @return [Vedeu::Views::Line]
|
42
32
|
def initialize(attributes = {})
|
43
|
-
|
44
|
-
|
45
|
-
@attributes.each do |key, value|
|
33
|
+
defaults.merge!(attributes).each do |key, value|
|
46
34
|
instance_variable_set("@#{key}", value)
|
47
35
|
end
|
48
36
|
end
|
@@ -54,6 +42,18 @@ module Vedeu
|
|
54
42
|
end
|
55
43
|
alias_method :<<, :add
|
56
44
|
|
45
|
+
# @return [Hash<Symbol => void>]
|
46
|
+
def attributes
|
47
|
+
{
|
48
|
+
client: @client,
|
49
|
+
colour: @colour,
|
50
|
+
name: name,
|
51
|
+
parent: parent,
|
52
|
+
style: @style,
|
53
|
+
value: value,
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
57
|
# Returns an array of all the characters with formatting for
|
58
58
|
# this line.
|
59
59
|
#
|
@@ -86,11 +86,6 @@ module Vedeu
|
|
86
86
|
end
|
87
87
|
alias_method :==, :eql?
|
88
88
|
|
89
|
-
# @return [NilClass|String|Symbol]
|
90
|
-
def name
|
91
|
-
parent.name if parent
|
92
|
-
end
|
93
|
-
|
94
89
|
# Returns the size of the content in characters without
|
95
90
|
# formatting.
|
96
91
|
#
|
@@ -109,11 +104,12 @@ module Vedeu
|
|
109
104
|
|
110
105
|
# The default values for a new instance of this class.
|
111
106
|
#
|
112
|
-
# @return [Hash<Symbol => void>]
|
107
|
+
# @return [Hash<Symbol => Array<void>|NilClass>]
|
113
108
|
def defaults
|
114
109
|
{
|
115
110
|
client: nil,
|
116
111
|
colour: nil,
|
112
|
+
name: nil,
|
117
113
|
parent: nil,
|
118
114
|
style: nil,
|
119
115
|
value: [],
|
@@ -2,30 +2,20 @@ module Vedeu
|
|
2
2
|
|
3
3
|
module Views
|
4
4
|
|
5
|
-
# A collection of {Vedeu::Views::Stream} instances.
|
6
|
-
#
|
7
|
-
# @api private
|
8
|
-
#
|
9
|
-
class Streams < Vedeu::Repositories::Collection
|
10
|
-
|
11
|
-
end # Streams
|
12
|
-
|
13
5
|
# Represents a character or collection of characters as part of a
|
14
6
|
# {Vedeu::Views::Line} which you wish to colour and style
|
15
7
|
# independently of the other characters in that line.
|
16
8
|
#
|
17
9
|
class Stream
|
18
10
|
|
11
|
+
include Vedeu::Common
|
19
12
|
include Vedeu::Repositories::Model
|
13
|
+
include Vedeu::Repositories::Parent
|
20
14
|
include Vedeu::Presentation
|
21
15
|
|
22
16
|
collection Vedeu::Views::Chars
|
23
17
|
member Vedeu::Views::Char
|
24
18
|
|
25
|
-
# @!attribute [r] attributes
|
26
|
-
# @return [Hash]
|
27
|
-
attr_reader :attributes
|
28
|
-
|
29
19
|
# @!attribute [rw] parent
|
30
20
|
# @return [Vedeu::Views::Line]
|
31
21
|
attr_accessor :parent
|
@@ -46,9 +36,7 @@ module Vedeu
|
|
46
36
|
# @option attributes value [String]
|
47
37
|
# @return [Vedeu::Views::Stream]
|
48
38
|
def initialize(attributes = {})
|
49
|
-
|
50
|
-
|
51
|
-
@attributes.each do |key, value|
|
39
|
+
defaults.merge!(attributes).each do |key, value|
|
52
40
|
instance_variable_set("@#{key}", value)
|
53
41
|
end
|
54
42
|
end
|
@@ -60,6 +48,18 @@ module Vedeu
|
|
60
48
|
end
|
61
49
|
alias_method :<<, :add
|
62
50
|
|
51
|
+
# @return [Hash<Symbol => void>]
|
52
|
+
def attributes
|
53
|
+
{
|
54
|
+
client: @client,
|
55
|
+
colour: colour,
|
56
|
+
name: name,
|
57
|
+
parent: parent,
|
58
|
+
style: style,
|
59
|
+
value: value,
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
63
|
# Returns an array of characters, each element is the escape
|
64
64
|
# sequences of colours and styles for this stream, the character
|
65
65
|
# itself, and the escape sequences of colours and styles for the
|
@@ -102,11 +102,6 @@ module Vedeu
|
|
102
102
|
end
|
103
103
|
alias_method :==, :eql?
|
104
104
|
|
105
|
-
# @return [NilClass|String|Symbol]
|
106
|
-
def name
|
107
|
-
parent.name if parent
|
108
|
-
end
|
109
|
-
|
110
105
|
# Returns the size of the content in characters without
|
111
106
|
# formatting.
|
112
107
|
#
|
@@ -124,6 +119,7 @@ module Vedeu
|
|
124
119
|
{
|
125
120
|
client: nil,
|
126
121
|
colour: nil,
|
122
|
+
name: nil,
|
127
123
|
parent: nil,
|
128
124
|
style: nil,
|
129
125
|
value: '',
|
@@ -2,29 +2,18 @@ module Vedeu
|
|
2
2
|
|
3
3
|
module Views
|
4
4
|
|
5
|
-
# A collection of {Vedeu::Views::View} instances.
|
6
|
-
#
|
7
|
-
# @api private
|
8
|
-
#
|
9
|
-
class ViewCollection < Vedeu::Repositories::Collection
|
10
|
-
|
11
|
-
end # ViewCollection
|
12
|
-
|
13
5
|
# Represents a container for {Vedeu::Views::Line} and
|
14
6
|
# {Vedeu::Views::Stream} objects.
|
15
7
|
#
|
16
8
|
class View
|
17
9
|
|
18
10
|
include Vedeu::Repositories::Model
|
11
|
+
include Vedeu::Repositories::Parent
|
19
12
|
include Vedeu::Presentation
|
20
13
|
|
21
14
|
collection Vedeu::Views::Lines
|
22
15
|
member Vedeu::Views::Line
|
23
16
|
|
24
|
-
# @!attribute [r] attributes
|
25
|
-
# @return [Hash]
|
26
|
-
attr_reader :attributes
|
27
|
-
|
28
17
|
# @!attribute [rw] client
|
29
18
|
# @return [Fixnum|Float]
|
30
19
|
attr_accessor :client
|
@@ -63,9 +52,7 @@ module Vedeu
|
|
63
52
|
# @option attributes zindex [Fixnum]
|
64
53
|
# @return [Vedeu::Views::View]
|
65
54
|
def initialize(attributes = {})
|
66
|
-
|
67
|
-
|
68
|
-
@attributes.each do |key, value|
|
55
|
+
defaults.merge!(attributes).each do |key, value|
|
69
56
|
instance_variable_set("@#{key}", value)
|
70
57
|
end
|
71
58
|
end
|
@@ -77,6 +64,20 @@ module Vedeu
|
|
77
64
|
end
|
78
65
|
alias_method :<<, :add
|
79
66
|
|
67
|
+
# @return [Hash]
|
68
|
+
def attributes
|
69
|
+
{
|
70
|
+
client: @client,
|
71
|
+
colour: colour,
|
72
|
+
cursor_visible: cursor_visible,
|
73
|
+
name: name,
|
74
|
+
parent: parent,
|
75
|
+
style: style,
|
76
|
+
value: value,
|
77
|
+
zindex: zindex,
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
80
81
|
# Returns a DSL instance responsible for defining the DSL
|
81
82
|
# methods of this model.
|
82
83
|
#
|
@@ -118,7 +119,7 @@ module Vedeu
|
|
118
119
|
'Cannot store an interface ' \
|
119
120
|
'without a name.'.freeze unless present?(name)
|
120
121
|
|
121
|
-
|
122
|
+
buffer.add(self)
|
122
123
|
|
123
124
|
self
|
124
125
|
end
|
@@ -127,11 +128,16 @@ module Vedeu
|
|
127
128
|
#
|
128
129
|
# @return [Boolean]
|
129
130
|
def visible?
|
130
|
-
|
131
|
+
interface.visible?
|
131
132
|
end
|
132
133
|
|
133
134
|
private
|
134
135
|
|
136
|
+
# @return [Vedeu::Buffers::Buffer]
|
137
|
+
def buffer
|
138
|
+
Vedeu.buffers.by_name(name)
|
139
|
+
end
|
140
|
+
|
135
141
|
# The default values for a new instance of this class.
|
136
142
|
#
|
137
143
|
# @return [Hash]
|
@@ -148,6 +154,11 @@ module Vedeu
|
|
148
154
|
}
|
149
155
|
end
|
150
156
|
|
157
|
+
# @return [Vedeu::Interfaces::Interface]
|
158
|
+
def interface
|
159
|
+
Vedeu.interfaces.by_name(name)
|
160
|
+
end
|
161
|
+
|
151
162
|
end # View
|
152
163
|
|
153
164
|
end # Views
|
data/lib/vedeu.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# Ruby standard libraries
|
1
2
|
require 'base64'
|
2
3
|
require 'date'
|
3
4
|
require 'drb'
|
@@ -13,6 +14,7 @@ require 'thread'
|
|
13
14
|
require 'time'
|
14
15
|
require 'zlib'
|
15
16
|
|
17
|
+
# Gem dependencies
|
16
18
|
require 'thor'
|
17
19
|
|
18
20
|
# Vedeu is a GUI framework for terminal/console applications written
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Vedeu
|
4
|
+
|
5
|
+
module Borders
|
6
|
+
|
7
|
+
describe SetAttribute do
|
8
|
+
|
9
|
+
let(:described) { Vedeu::Borders::SetAttribute }
|
10
|
+
let(:instance) { described.new(_name, attribute, _value) }
|
11
|
+
let(:_name) {}
|
12
|
+
let(:attribute) {}
|
13
|
+
let(:_value) {}
|
14
|
+
let(:border) {
|
15
|
+
Vedeu::Borders::Border.new(name: _name)
|
16
|
+
}
|
17
|
+
|
18
|
+
describe '#initialize' do
|
19
|
+
it { instance.must_be_instance_of(described) }
|
20
|
+
it { instance.instance_variable_get('@name').must_equal(_name) }
|
21
|
+
it { instance.instance_variable_get('@attribute').must_equal(attribute) }
|
22
|
+
it { instance.instance_variable_get('@value').must_equal(_value) }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.update' do
|
26
|
+
let(:_name) { 'Vedeu::Borders::SetAttribute' }
|
27
|
+
let(:attribute) { :title }
|
28
|
+
|
29
|
+
subject { described.update(_name, attribute, _value) }
|
30
|
+
|
31
|
+
it { subject.must_be_instance_of(Vedeu::Borders::Border) }
|
32
|
+
|
33
|
+
context 'when a name is given' do
|
34
|
+
context 'when an attribute is given' do
|
35
|
+
context 'when a value is given' do
|
36
|
+
let(:_value) { 'Other value' }
|
37
|
+
|
38
|
+
it { subject.send(attribute).must_equal(_value) }
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'when a value is not given' do
|
42
|
+
it { subject.send(attribute).must_equal('') }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when an attribute is not given' do
|
47
|
+
let(:attribute) {}
|
48
|
+
|
49
|
+
it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#update' do
|
55
|
+
it { instance.must_respond_to(:update) }
|
56
|
+
end
|
57
|
+
|
58
|
+
end # SetAttribute
|
59
|
+
|
60
|
+
end # Borders
|
61
|
+
|
62
|
+
end # Vedeu
|
@@ -83,6 +83,12 @@ module Vedeu
|
|
83
83
|
it { subject.must_equal(true) }
|
84
84
|
end
|
85
85
|
|
86
|
+
context 'when the variable is a Symbol' do
|
87
|
+
let(:_value) { :some_value }
|
88
|
+
|
89
|
+
it { subject.must_equal(true) }
|
90
|
+
end
|
91
|
+
|
86
92
|
context 'when the variable is not nil or empty' do
|
87
93
|
let(:_value) { 'not empty' }
|
88
94
|
|
@@ -135,8 +135,6 @@ module Vedeu
|
|
135
135
|
let(:ox) { 3 }
|
136
136
|
let(:oy) { 2 }
|
137
137
|
|
138
|
-
before { Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name) }
|
139
|
-
|
140
138
|
subject { instance.move_down }
|
141
139
|
|
142
140
|
it { subject.must_be_instance_of(described) }
|
@@ -153,8 +151,6 @@ module Vedeu
|
|
153
151
|
let(:ox) { 3 }
|
154
152
|
let(:oy) { 2 }
|
155
153
|
|
156
|
-
before { Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name) }
|
157
|
-
|
158
154
|
subject { instance.move_left }
|
159
155
|
|
160
156
|
it { subject.must_be_instance_of(described) }
|
@@ -187,8 +183,6 @@ module Vedeu
|
|
187
183
|
let(:ox) { 3 }
|
188
184
|
let(:oy) { 2 }
|
189
185
|
|
190
|
-
before { Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name) }
|
191
|
-
|
192
186
|
subject { instance.move_right }
|
193
187
|
|
194
188
|
it { subject.must_be_instance_of(described) }
|
@@ -205,8 +199,6 @@ module Vedeu
|
|
205
199
|
let(:ox) { 3 }
|
206
200
|
let(:oy) { 2 }
|
207
201
|
|
208
|
-
before { Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name) }
|
209
|
-
|
210
202
|
subject { instance.move_up }
|
211
203
|
|
212
204
|
it { subject.must_be_instance_of(described) }
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Vedeu
|
4
|
+
|
5
|
+
module Cursors
|
6
|
+
|
7
|
+
describe Move do
|
8
|
+
|
9
|
+
let(:described) { Vedeu::Cursors::Move }
|
10
|
+
let(:instance) { described.new(_name, direction) }
|
11
|
+
let(:_name) {}
|
12
|
+
let(:direction) {}
|
13
|
+
let(:visible) { true }
|
14
|
+
|
15
|
+
describe '#initialize' do
|
16
|
+
it { instance.must_be_instance_of(described) }
|
17
|
+
it { instance.instance_variable_get('@name').must_equal(_name) }
|
18
|
+
it { instance.instance_variable_get('@direction').must_equal(direction) }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '.move' do
|
22
|
+
let(:cursor) {
|
23
|
+
Vedeu::Cursors::Cursor.new(name: _name, visible: visible)
|
24
|
+
}
|
25
|
+
|
26
|
+
before do
|
27
|
+
Vedeu.stubs(:trigger).with(:_refresh_cursor_, _name)
|
28
|
+
end
|
29
|
+
|
30
|
+
subject { described.move(_name, direction) }
|
31
|
+
|
32
|
+
context 'when a name is given' do
|
33
|
+
let(:_name) { 'Vedeu::Cursors::Move' }
|
34
|
+
|
35
|
+
before do
|
36
|
+
Vedeu.cursors.stubs(:by_name).returns(cursor)
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when the cursor is visible' do
|
40
|
+
context 'when a valid direction is given' do
|
41
|
+
let(:direction) { :move_left }
|
42
|
+
|
43
|
+
it { subject.must_be_instance_of(Vedeu::Cursors::Cursor) }
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when an invalid direction is given' do
|
47
|
+
let(:direction) { :invalid }
|
48
|
+
|
49
|
+
it { subject.must_equal(nil) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context 'when the cursor is not visible' do
|
54
|
+
let(:visible) { false }
|
55
|
+
|
56
|
+
it { subject.must_equal(nil) }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'when a name is not given' do
|
61
|
+
it { subject.must_equal(nil) }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#move' do
|
66
|
+
it { instance.must_respond_to(:move) }
|
67
|
+
end
|
68
|
+
|
69
|
+
end # Move
|
70
|
+
|
71
|
+
end # Cursors
|
72
|
+
|
73
|
+
end # Vedeu
|
@@ -39,7 +39,9 @@ module Vedeu
|
|
39
39
|
end
|
40
40
|
|
41
41
|
context 'when there are no interfaces or views defined' do
|
42
|
-
it
|
42
|
+
it 'returns an unnamed cursor' do
|
43
|
+
subject.must_be_instance_of(Vedeu::Cursors::Cursor)
|
44
|
+
end
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
@@ -8,7 +8,7 @@ module Vedeu
|
|
8
8
|
|
9
9
|
let(:described) { Vedeu::Events::Aliases }
|
10
10
|
|
11
|
-
before { described.reset }
|
11
|
+
before { described.reset! }
|
12
12
|
|
13
13
|
describe '.add' do
|
14
14
|
let(:alias_name) { :alias_test }
|
@@ -88,10 +88,10 @@ module Vedeu
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
describe '.reset' do
|
92
|
-
subject { described.reset }
|
91
|
+
describe '.reset!' do
|
92
|
+
subject { described.reset! }
|
93
93
|
|
94
|
-
it { described.must_respond_to(:reset
|
94
|
+
it { described.must_respond_to(:reset) }
|
95
95
|
|
96
96
|
it { subject.must_equal({}) }
|
97
97
|
end
|
@@ -45,12 +45,6 @@ module Vedeu
|
|
45
45
|
|
46
46
|
it { proc { subject }.must_raise(Vedeu::Error::MissingRequired) }
|
47
47
|
end
|
48
|
-
|
49
|
-
context 'when no interfaces/views have been registered' do
|
50
|
-
before { Vedeu::Models::Focus.reset }
|
51
|
-
|
52
|
-
it { proc { subject }.must_raise(Vedeu::Error::Fatal) }
|
53
|
-
end
|
54
48
|
end
|
55
49
|
|
56
50
|
context 'when the name is present' do
|
@@ -8,7 +8,7 @@ module Vedeu
|
|
8
8
|
|
9
9
|
let(:described) { Vedeu::Input::Store }
|
10
10
|
|
11
|
-
before { described.reset }
|
11
|
+
before { described.reset! }
|
12
12
|
|
13
13
|
describe '#add_command' do
|
14
14
|
let(:command) { 'command_1' }
|
@@ -99,7 +99,7 @@ module Vedeu
|
|
99
99
|
end
|
100
100
|
|
101
101
|
describe '#reset' do
|
102
|
-
subject { described.reset }
|
102
|
+
subject { described.reset! }
|
103
103
|
|
104
104
|
it { subject.must_equal({ commands: [], keypresses: [] }) }
|
105
105
|
end
|
@@ -76,10 +76,15 @@ module Vedeu
|
|
76
76
|
instance.must_respond_to(:visible)
|
77
77
|
instance.must_respond_to(:visible=)
|
78
78
|
instance.must_respond_to(:visible?)
|
79
|
-
instance.must_respond_to(:attributes)
|
80
79
|
}
|
81
80
|
end
|
82
81
|
|
82
|
+
describe '#attributes' do
|
83
|
+
subject { instance.attributes }
|
84
|
+
|
85
|
+
it { subject.must_be_instance_of(Hash) }
|
86
|
+
end
|
87
|
+
|
83
88
|
describe '#deputy' do
|
84
89
|
subject { instance.deputy }
|
85
90
|
|