vedeu 0.8.24 → 0.8.25
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.
- checksums.yaml +4 -4
- data/integrations/dsl_app_030.rb +55 -0
- data/integrations/dsl_app_031.rb +55 -0
- data/integrations/dsl_app_border_012.rb +51 -0
- data/integrations/expected/dsl_app_030.out +1 -0
- data/integrations/expected/dsl_app_031.out +1 -0
- data/integrations/expected/dsl_app_border_012.out +1 -0
- data/integrations/test_runner.sh +3 -0
- data/lib/vedeu/boolean.rb +10 -0
- data/lib/vedeu/borders/dsl.rb +4 -12
- data/lib/vedeu/dsl/cursors.rb +3 -4
- data/lib/vedeu/dsl/elements.rb +4 -6
- data/lib/vedeu/dsl/presentation.rb +1 -3
- data/lib/vedeu/interfaces/all.rb +1 -0
- data/lib/vedeu/interfaces/clear.rb +19 -120
- data/lib/vedeu/interfaces/clear_content.rb +131 -0
- data/lib/vedeu/interfaces/dsl.rb +3 -7
- data/lib/vedeu/presentation/all.rb +3 -0
- data/lib/vedeu/presentation/colour.rb +2 -5
- data/lib/vedeu/presentation/parent.rb +21 -0
- data/lib/vedeu/presentation/styles.rb +3 -5
- data/lib/vedeu/version.rb +1 -1
- data/lib/vedeu/views/line.rb +1 -5
- data/lib/vedeu/views/stream.rb +1 -5
- data/lib/vedeu/views/view.rb +1 -5
- data/test/lib/vedeu/boolean_test.rb +18 -0
- data/test/lib/vedeu/interfaces/clear_content_test.rb +83 -0
- data/test/lib/vedeu/interfaces/clear_test.rb +1 -8
- data/test/lib/vedeu/presentation/colour_test.rb +1 -1
- data/test/lib/vedeu/presentation/parent_test.rb +39 -0
- data/test/lib/vedeu/presentation/styles_test.rb +7 -7
- data/test/lib/vedeu/views/line_test.rb +3 -7
- data/test/lib/vedeu/views/stream_test.rb +0 -4
- data/test/lib/vedeu/views/view_test.rb +0 -4
- data/vedeu.gemspec +1 -1
- metadata +16 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 977f6bdee8b7a54320de8ac868a677cdea943115
|
|
4
|
+
data.tar.gz: 1bb42f91d121a6331b8fd2ee779bd9d2f47a13da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f8e18b503177a2d2478a057639c480186cd82e6c3bb766d7c918e41c0129a2e0f4f143937650e3b06c567a2fcaaa8179db07215e05f0645909bb563d13ed7624
|
|
7
|
+
data.tar.gz: 661116fd7b9a6c3209698c4ffd11248d374d63741560a793ece435c0bdda8d505cb2be806f68adacf5c36e17e0e7077d06d4831993da3e6a51c0840f50bc3d7f
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
|
|
5
|
+
require 'bundler/setup'
|
|
6
|
+
require 'vedeu'
|
|
7
|
+
|
|
8
|
+
TESTCASE = 'dsl_app_030'
|
|
9
|
+
|
|
10
|
+
class DSLApp
|
|
11
|
+
|
|
12
|
+
Vedeu.bind(:_initialize_) do
|
|
13
|
+
Vedeu.trigger(:_refresh_)
|
|
14
|
+
sleep 0.25
|
|
15
|
+
Vedeu.trigger(:_clear_view_)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Vedeu.configure do
|
|
19
|
+
debug!
|
|
20
|
+
height 10
|
|
21
|
+
log Dir.tmpdir + '/vedeu_views_dsl.log'
|
|
22
|
+
renderers [
|
|
23
|
+
Vedeu::Renderers::Terminal.new(
|
|
24
|
+
filename: Dir.tmpdir + "/#{TESTCASE}.out",
|
|
25
|
+
write_file: true),
|
|
26
|
+
# Vedeu::Renderers::JSON.new(filename: Dir.tmpdir + "/#{TESTCASE}.json"),
|
|
27
|
+
# Vedeu::Renderers::HTML.new(filename: Dir.tmpdir + "/#{TESTCASE}.html"),
|
|
28
|
+
# Vedeu::Renderers::Text.new(filename: Dir.tmpdir + "/#{TESTCASE}.txt"),
|
|
29
|
+
]
|
|
30
|
+
run_once!
|
|
31
|
+
standalone!
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
load File.dirname(__FILE__) + '/support/test_interface.rb'
|
|
35
|
+
|
|
36
|
+
Vedeu.render do
|
|
37
|
+
view(:test_interface) do
|
|
38
|
+
lines do
|
|
39
|
+
line 'some content'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.start(argv = ARGV)
|
|
45
|
+
Vedeu::Launcher.execute!(argv)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end # DSLApp
|
|
49
|
+
|
|
50
|
+
Vedeu.timer('Test') do
|
|
51
|
+
DSLApp.start
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
load File.dirname(__FILE__) + '/test_runner.rb'
|
|
55
|
+
TestRunner.result(TESTCASE, __FILE__)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
|
|
5
|
+
require 'bundler/setup'
|
|
6
|
+
require 'vedeu'
|
|
7
|
+
|
|
8
|
+
TESTCASE = 'dsl_app_031'
|
|
9
|
+
|
|
10
|
+
class DSLApp
|
|
11
|
+
|
|
12
|
+
Vedeu.bind(:_initialize_) do
|
|
13
|
+
Vedeu.trigger(:_refresh_)
|
|
14
|
+
sleep 0.25
|
|
15
|
+
Vedeu.trigger(:_clear_view_content_)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
Vedeu.configure do
|
|
19
|
+
debug!
|
|
20
|
+
height 10
|
|
21
|
+
log Dir.tmpdir + '/vedeu_views_dsl.log'
|
|
22
|
+
renderers [
|
|
23
|
+
Vedeu::Renderers::Terminal.new(
|
|
24
|
+
filename: Dir.tmpdir + "/#{TESTCASE}.out",
|
|
25
|
+
write_file: true),
|
|
26
|
+
# Vedeu::Renderers::JSON.new(filename: Dir.tmpdir + "/#{TESTCASE}.json"),
|
|
27
|
+
# Vedeu::Renderers::HTML.new(filename: Dir.tmpdir + "/#{TESTCASE}.html"),
|
|
28
|
+
# Vedeu::Renderers::Text.new(filename: Dir.tmpdir + "/#{TESTCASE}.txt"),
|
|
29
|
+
]
|
|
30
|
+
run_once!
|
|
31
|
+
standalone!
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
load File.dirname(__FILE__) + '/support/test_interface.rb'
|
|
35
|
+
|
|
36
|
+
Vedeu.render do
|
|
37
|
+
view(:test_interface) do
|
|
38
|
+
lines do
|
|
39
|
+
line 'some content'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.start(argv = ARGV)
|
|
45
|
+
Vedeu::Launcher.execute!(argv)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end # DSLApp
|
|
49
|
+
|
|
50
|
+
Vedeu.timer('Test') do
|
|
51
|
+
DSLApp.start
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
load File.dirname(__FILE__) + '/test_runner.rb'
|
|
55
|
+
TestRunner.result(TESTCASE, __FILE__)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
|
|
5
|
+
require 'bundler/setup'
|
|
6
|
+
require 'vedeu'
|
|
7
|
+
|
|
8
|
+
TESTCASE = 'dsl_app_border_012'
|
|
9
|
+
|
|
10
|
+
class DSLApp
|
|
11
|
+
|
|
12
|
+
Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
|
|
13
|
+
|
|
14
|
+
Vedeu.configure do
|
|
15
|
+
debug!
|
|
16
|
+
height 10
|
|
17
|
+
log Dir.tmpdir + '/vedeu_views_dsl.log'
|
|
18
|
+
renderers [
|
|
19
|
+
Vedeu::Renderers::Terminal.new(
|
|
20
|
+
filename: Dir.tmpdir + "/#{TESTCASE}.out",
|
|
21
|
+
write_file: true),
|
|
22
|
+
# Vedeu::Renderers::JSON.new(filename: Dir.tmpdir + "/#{TESTCASE}.json"),
|
|
23
|
+
# Vedeu::Renderers::HTML.new(filename: Dir.tmpdir + "/#{TESTCASE}.html"),
|
|
24
|
+
# Vedeu::Renderers::Text.new(filename: Dir.tmpdir + "/#{TESTCASE}.txt"),
|
|
25
|
+
]
|
|
26
|
+
run_once!
|
|
27
|
+
standalone!
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
load File.dirname(__FILE__) + '/support/test_interface.rb'
|
|
31
|
+
|
|
32
|
+
Vedeu.render do
|
|
33
|
+
view(:test_interface) do
|
|
34
|
+
lines do
|
|
35
|
+
line 'border on'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.start(argv = ARGV)
|
|
41
|
+
Vedeu::Launcher.execute!(argv)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end # DSLApp
|
|
45
|
+
|
|
46
|
+
Vedeu.timer('Test') do
|
|
47
|
+
DSLApp.start
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
load File.dirname(__FILE__) + '/test_runner.rb'
|
|
51
|
+
TestRunner.result(TESTCASE, __FILE__)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[0m[2;2H[39m[49m [2;3H [2;4H [2;5H [2;6H [2;7H [2;8H [2;9H [2;10H [2;11H [2;12H [2;13H [2;14H [2;15H [2;16H [2;17H [2;18H [2;19H [2;20H [2;21H [2;22H [2;23H [2;24H [2;25H [2;26H [2;27H [2;28H [2;29H [2;30H [2;31H [2;32H [0m[3;2H[39m[49m [3;3H [3;4H [3;5H [3;6H [3;7H [3;8H [3;9H [3;10H [3;11H [3;12H [3;13H [3;14H [3;15H [3;16H [3;17H [3;18H [3;19H [3;20H [3;21H [3;22H [3;23H [3;24H [3;25H [3;26H [3;27H [3;28H [3;29H [3;30H [3;31H [3;32H [0m[4;2H[39m[49m [4;3H [4;4H [4;5H [4;6H [4;7H [4;8H [4;9H [4;10H [4;11H [4;12H [4;13H [4;14H [4;15H [4;16H [4;17H [4;18H [4;19H [4;20H [4;21H [4;22H [4;23H [4;24H [4;25H [4;26H [4;27H [4;28H [4;29H [4;30H [4;31H [4;32H [0m[5;2H[39m[49m [5;3H [5;4H [5;5H [5;6H [5;7H [5;8H [5;9H [5;10H [5;11H [5;12H [5;13H [5;14H [5;15H [5;16H [5;17H [5;18H [5;19H [5;20H [5;21H [5;22H [5;23H [5;24H [5;25H [5;26H [5;27H [5;28H [5;29H [5;30H [5;31H [5;32H [0m[6;2H[39m[49m [6;3H [6;4H [6;5H [6;6H [6;7H [6;8H [6;9H [6;10H [6;11H [6;12H [6;13H [6;14H [6;15H [6;16H [6;17H [6;18H [6;19H [6;20H [6;21H [6;22H [6;23H [6;24H [6;25H [6;26H [6;27H [6;28H [6;29H [6;30H [6;31H [6;32H [0m
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[0m[2;2H[39m[49m(0l(B[2;3H(0q(B[2;4H [2;5HT[2;6He[2;7Hs[2;8Ht[2;9H [2;10H(0q(B[2;11H(0q(B[2;12H(0q(B[2;13H(0q(B[2;14H(0q(B[2;15H(0q(B[2;16H(0q(B[2;17H(0q(B[2;18H(0q(B[2;19H(0q(B[2;20H(0q(B[2;21H(0q(B[2;22H(0q(B[2;23H(0q(B[2;24H(0q(B[2;25H(0q(B[2;26H(0q(B[2;27H(0q(B[2;28H(0q(B[2;29H(0q(B[2;30H(0q(B[2;31H(0q(B[2;32H(0k(B[0m[3;2H[39m[49m(0x(B[3;3H [3;4H [3;5H [3;6H [3;7H [3;8H [3;9H [3;10H [3;11H [3;12H [3;13H [3;14H [3;15H [3;16H [3;17H [3;18H [3;19H [3;20H [3;21H [3;22H [3;23H [3;24H [3;25H [3;26H [3;27H [3;28H [3;29H [3;30H [3;31H [3;32H(0x(B[0m[4;2H[39m[49m(0x(B[4;3H [4;4H [4;5H [4;6H [4;7H [4;8H [4;9H [4;10H [4;11H [4;12H [4;13H [4;14H [4;15H [4;16H [4;17H [4;18H [4;19H [4;20H [4;21H [4;22H [4;23H [4;24H [4;25H [4;26H [4;27H [4;28H [4;29H [4;30H [4;31H [4;32H(0x(B[0m[5;2H[39m[49m(0x(B[5;3H [5;4H [5;5H [5;6H [5;7H [5;8H [5;9H [5;10H [5;11H [5;12H [5;13H [5;14H [5;15H [5;16H [5;17H [5;18H [5;19H [5;20H [5;21H [5;22H [5;23H [5;24H [5;25H [5;26H [5;27H [5;28H [5;29H [5;30H [5;31H [5;32H(0x(B[0m[6;2H[39m[49m(0m(B[6;3H(0q(B[6;4H(0q(B[6;5H(0q(B[6;6H(0q(B[6;7H(0q(B[6;8H(0q(B[6;9H(0q(B[6;10H(0q(B[6;11H(0q(B[6;12H(0q(B[6;13H(0q(B[6;14H(0q(B[6;15H(0q(B[6;16H(0q(B[6;17H(0q(B[6;18H(0q(B[6;19H(0q(B[6;20H(0q(B[6;21H(0q(B[6;22H(0q(B[6;23H(0q(B[6;24H(0q(B[6;25H(0q(B[6;26H(0q(B[6;27H(0q(B[6;28H(0q(B[6;29H(0q(B[6;30H(0q(B[6;31H(0q(B[6;32H(0j(B[0m
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[0m[2;2H[39m[49m(0l(B[2;3H(0q(B[2;4H [2;5HT[2;6He[2;7Hs[2;8Ht[2;9H [2;10H(0q(B[2;11H(0q(B[2;12H(0q(B[2;13H(0q(B[2;14H(0q(B[2;15H(0q(B[2;16H(0q(B[2;17H(0q(B[2;18H(0q(B[2;19H(0q(B[2;20H(0q(B[2;21H(0q(B[2;22H(0q(B[2;23H(0q(B[2;24H(0q(B[2;25H(0q(B[2;26H(0q(B[2;27H(0q(B[2;28H(0q(B[2;29H(0q(B[2;30H(0q(B[2;31H(0q(B[2;32H(0k(B[0m[3;2H[39m[49m(0x(B[3;3Hb[3;4Ho[3;5Hr[3;6Hd[3;7He[3;8Hr[3;9H [3;10Ho[3;11Hn[3;12H [3;13H [3;14H [3;15H [3;16H [3;17H [3;18H [3;19H [3;20H [3;21H [3;22H [3;23H [3;24H [3;25H [3;26H [3;27H [3;28H [3;29H [3;30H [3;31H [3;32H(0x(B[0m[4;2H[39m[49m(0x(B[4;3H [4;4H [4;5H [4;6H [4;7H [4;8H [4;9H [4;10H [4;11H [4;12H [4;13H [4;14H [4;15H [4;16H [4;17H [4;18H [4;19H [4;20H [4;21H [4;22H [4;23H [4;24H [4;25H [4;26H [4;27H [4;28H [4;29H [4;30H [4;31H [4;32H(0x(B[0m[5;2H[39m[49m(0x(B[5;3H [5;4H [5;5H [5;6H [5;7H [5;8H [5;9H [5;10H [5;11H [5;12H [5;13H [5;14H [5;15H [5;16H [5;17H [5;18H [5;19H [5;20H [5;21H [5;22H [5;23H [5;24H [5;25H [5;26H [5;27H [5;28H [5;29H [5;30H [5;31H [5;32H(0x(B[0m[6;2H[39m[49m(0m(B[6;3H(0q(B[6;4H(0q(B[6;5H(0q(B[6;6H(0q(B[6;7H(0q(B[6;8H(0q(B[6;9H(0q(B[6;10H(0q(B[6;11H(0q(B[6;12H(0q(B[6;13H(0q(B[6;14H(0q(B[6;15H(0q(B[6;16H(0q(B[6;17H(0q(B[6;18H(0q(B[6;19H(0q(B[6;20H(0q(B[6;21H(0q(B[6;22H(0q(B[6;23H(0q(B[6;24H(0q(B[6;25H(0q(B[6;26H(0q(B[6;27H(0q(B[6;28H(0q(B[6;29H(0q(B[6;30H(0q(B[6;31H(0q(B[6;32H(0j(B[0m
|
data/integrations/test_runner.sh
CHANGED
|
@@ -31,6 +31,8 @@ cd "$(dirname "$0")"
|
|
|
31
31
|
./dsl_app_016.rb
|
|
32
32
|
./dsl_app_021.rb
|
|
33
33
|
./dsl_app_022.rb
|
|
34
|
+
./dsl_app_030.rb
|
|
35
|
+
./dsl_app_031.rb
|
|
34
36
|
|
|
35
37
|
# Test some border functionality
|
|
36
38
|
./dsl_app_border_001.rb # border off
|
|
@@ -44,6 +46,7 @@ cd "$(dirname "$0")"
|
|
|
44
46
|
./dsl_app_border_009.rb # only right
|
|
45
47
|
./dsl_app_border_010.rb # only bottom
|
|
46
48
|
./dsl_app_border_011.rb # only left
|
|
49
|
+
./dsl_app_border_012.rb # border on
|
|
47
50
|
|
|
48
51
|
# Failing
|
|
49
52
|
# ./dsl_app_017.rb
|
data/lib/vedeu/boolean.rb
CHANGED
|
@@ -8,12 +8,22 @@ module Vedeu
|
|
|
8
8
|
#
|
|
9
9
|
class Boolean
|
|
10
10
|
|
|
11
|
+
# @return [Boolean]
|
|
12
|
+
def self.coerce(value = nil)
|
|
13
|
+
new(value).coerce
|
|
14
|
+
end
|
|
15
|
+
|
|
11
16
|
# @param value [void]
|
|
12
17
|
# @return [Vedeu::Boolean]
|
|
13
18
|
def initialize(value = nil)
|
|
14
19
|
@value = value
|
|
15
20
|
end
|
|
16
21
|
|
|
22
|
+
# @return [Boolean]
|
|
23
|
+
def coerce
|
|
24
|
+
value ? true : false
|
|
25
|
+
end
|
|
26
|
+
|
|
17
27
|
# @return [Boolean]
|
|
18
28
|
def false?
|
|
19
29
|
value.nil? || value == false
|
data/lib/vedeu/borders/dsl.rb
CHANGED
|
@@ -128,9 +128,7 @@ module Vedeu
|
|
|
128
128
|
# and false.
|
|
129
129
|
# @return [Boolean]
|
|
130
130
|
def bottom(value)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
model.show_bottom = boolean
|
|
131
|
+
model.show_bottom = Vedeu::Boolean.coerce(value)
|
|
134
132
|
end
|
|
135
133
|
alias show_bottom bottom
|
|
136
134
|
alias bottom= bottom
|
|
@@ -154,9 +152,7 @@ module Vedeu
|
|
|
154
152
|
# and false.
|
|
155
153
|
# @return [Boolean]
|
|
156
154
|
def left(value)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
model.show_left = boolean
|
|
155
|
+
model.show_left = Vedeu::Boolean.coerce(value)
|
|
160
156
|
end
|
|
161
157
|
alias show_left left
|
|
162
158
|
alias left= left
|
|
@@ -180,9 +176,7 @@ module Vedeu
|
|
|
180
176
|
# and false.
|
|
181
177
|
# @return [Boolean]
|
|
182
178
|
def right(value)
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
model.show_right = boolean
|
|
179
|
+
model.show_right = Vedeu::Boolean.coerce(value)
|
|
186
180
|
end
|
|
187
181
|
alias show_right right
|
|
188
182
|
alias right= right
|
|
@@ -224,9 +218,7 @@ module Vedeu
|
|
|
224
218
|
# and false.
|
|
225
219
|
# @return [Boolean]
|
|
226
220
|
def top(value)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
model.show_top = boolean
|
|
221
|
+
model.show_top = Vedeu::Boolean.coerce(value)
|
|
230
222
|
end
|
|
231
223
|
alias show_top top
|
|
232
224
|
alias top= top
|
data/lib/vedeu/dsl/cursors.rb
CHANGED
|
@@ -16,11 +16,10 @@ module Vedeu
|
|
|
16
16
|
# evaluate to true.
|
|
17
17
|
# @return [Vedeu::Cursors::Cursor]
|
|
18
18
|
def cursor(value = true)
|
|
19
|
-
|
|
19
|
+
model.cursor_visible = Vedeu::Boolean.coerce(value)
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Vedeu::Cursors::Cursor.store(name: name, visible: boolean)
|
|
21
|
+
Vedeu::Cursors::Cursor.store(name: name,
|
|
22
|
+
visible: Vedeu::Boolean.coerce(value))
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
# Set the cursor to visible for the interface or view.
|
data/lib/vedeu/dsl/elements.rb
CHANGED
|
@@ -68,25 +68,23 @@ module Vedeu
|
|
|
68
68
|
requires_model!
|
|
69
69
|
|
|
70
70
|
attrs = Vedeu::DSL::Attributes.build(self, model, nil, opts, &block)
|
|
71
|
+
l = Vedeu::Views::Line.build(attrs, &block)
|
|
72
|
+
v = Vedeu::Views::View.build(attrs, &block)
|
|
71
73
|
|
|
72
74
|
if view_model?
|
|
73
75
|
if model.lines?
|
|
74
|
-
l = Vedeu::Views::Line.build(attrs, &block)
|
|
75
76
|
model.add(l)
|
|
76
77
|
|
|
77
78
|
else
|
|
78
|
-
|
|
79
|
-
model.value = l.value
|
|
79
|
+
model.value = v.value
|
|
80
80
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
elsif line_model?
|
|
84
|
-
l = Vedeu::Views::Line.build(attrs, &block)
|
|
85
84
|
model.value = l.value
|
|
86
85
|
|
|
87
86
|
else
|
|
88
|
-
|
|
89
|
-
model.value = l.value
|
|
87
|
+
model.value = v.value
|
|
90
88
|
|
|
91
89
|
end
|
|
92
90
|
end
|
|
@@ -134,9 +134,7 @@ module Vedeu
|
|
|
134
134
|
# @param value [Boolean]
|
|
135
135
|
# @return [Boolean]
|
|
136
136
|
def wordwrap(value = true)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
model.wordwrap = boolean
|
|
137
|
+
model.wordwrap = Vedeu::Boolean.coerce(value)
|
|
140
138
|
end
|
|
141
139
|
alias wordwrap! wordwrap
|
|
142
140
|
|
data/lib/vedeu/interfaces/all.rb
CHANGED
|
@@ -25,45 +25,19 @@ module Vedeu
|
|
|
25
25
|
alias clear_by_name render
|
|
26
26
|
alias by_name render
|
|
27
27
|
|
|
28
|
-
# {include:file:docs/dsl/by_method/clear_content_by_name.md}
|
|
29
|
-
# @return [Array<Array<Vedeu::Cells::Char>>]
|
|
30
|
-
# @see #initialize
|
|
31
|
-
def clear_content_by_name(name = Vedeu.focus)
|
|
32
|
-
name || Vedeu.focus
|
|
33
|
-
|
|
34
|
-
new(name, content_only: true, direct: true).render
|
|
35
|
-
end
|
|
36
|
-
|
|
37
28
|
end # Eigenclass
|
|
38
29
|
|
|
39
30
|
# Return a new instance of Vedeu::Interfaces::Clear.
|
|
40
31
|
#
|
|
41
32
|
# @macro param_name
|
|
42
|
-
# @param options [Hash]
|
|
43
|
-
# @option options content_only [Boolean] Only clear the content
|
|
44
|
-
# not the border as well. Defaults to false.
|
|
45
|
-
# @option options direct [Boolean] Write the content directly
|
|
46
|
-
# to the terminal using a faster mechanism. The virtual buffer
|
|
47
|
-
# will still be updated. This improves the refresh time for
|
|
48
|
-
# Vedeu as we will not be building a grid of
|
|
49
|
-
# {Vedeu::Cells::Char} objects.
|
|
50
33
|
# @return [Vedeu::Interfaces::Clear]
|
|
51
|
-
def initialize(name
|
|
52
|
-
@name
|
|
53
|
-
@options = options
|
|
34
|
+
def initialize(name = Vedeu.focus)
|
|
35
|
+
@name = present?(name) ? name : Vedeu.focus
|
|
54
36
|
end
|
|
55
37
|
|
|
56
38
|
# @return [Array<Array<Vedeu::Cells::Char>>]
|
|
57
39
|
def render
|
|
58
|
-
|
|
59
|
-
Vedeu.direct_write(optimised_output)
|
|
60
|
-
|
|
61
|
-
Vedeu.buffer_update(output)
|
|
62
|
-
|
|
63
|
-
else
|
|
64
|
-
Vedeu.render_output(output)
|
|
65
|
-
|
|
66
|
-
end
|
|
40
|
+
Vedeu.render_output(output)
|
|
67
41
|
end
|
|
68
42
|
|
|
69
43
|
protected
|
|
@@ -84,24 +58,6 @@ module Vedeu
|
|
|
84
58
|
@_colour ||= interface.colour
|
|
85
59
|
end
|
|
86
60
|
|
|
87
|
-
# @return [Boolean]
|
|
88
|
-
def content_only?
|
|
89
|
-
options[:content_only]
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
# @macro defaults_method
|
|
93
|
-
def defaults
|
|
94
|
-
{
|
|
95
|
-
content_only: false,
|
|
96
|
-
direct: false,
|
|
97
|
-
}
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# @return [Boolean]
|
|
101
|
-
def direct?
|
|
102
|
-
options[:direct]
|
|
103
|
-
end
|
|
104
|
-
|
|
105
61
|
# @macro geometry_by_name
|
|
106
62
|
def geometry
|
|
107
63
|
@_geometry ||= Vedeu.geometries.by_name(name)
|
|
@@ -109,13 +65,7 @@ module Vedeu
|
|
|
109
65
|
|
|
110
66
|
# @return [Fixnum]
|
|
111
67
|
def height
|
|
112
|
-
@_height ||=
|
|
113
|
-
geometry.bordered_height
|
|
114
|
-
|
|
115
|
-
else
|
|
116
|
-
geometry.height
|
|
117
|
-
|
|
118
|
-
end
|
|
68
|
+
@_height ||= geometry.height
|
|
119
69
|
end
|
|
120
70
|
|
|
121
71
|
# @macro interface_by_name
|
|
@@ -123,24 +73,6 @@ module Vedeu
|
|
|
123
73
|
Vedeu.interfaces.by_name(name)
|
|
124
74
|
end
|
|
125
75
|
|
|
126
|
-
# @return [Hash<Symbol => Boolean>]
|
|
127
|
-
def options
|
|
128
|
-
defaults.merge!(@options)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
# @return [String]
|
|
132
|
-
def optimised_output
|
|
133
|
-
Vedeu.timer("Optimised clearing #{clearing}: '#{name}'") do
|
|
134
|
-
Array.new(height) do |iy|
|
|
135
|
-
[
|
|
136
|
-
build_position(y + iy, x),
|
|
137
|
-
colour.to_s,
|
|
138
|
-
chars,
|
|
139
|
-
].join
|
|
140
|
-
end.join + build_position(y, x)
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
|
|
144
76
|
# For each visible line of the interface, set the foreground and
|
|
145
77
|
# background colours to those specified when the interface was
|
|
146
78
|
# defined, then starting write space characters over the area
|
|
@@ -148,68 +80,39 @@ module Vedeu
|
|
|
148
80
|
#
|
|
149
81
|
# @return [Array<Array<Vedeu::Cells::Char>>]
|
|
150
82
|
def output
|
|
151
|
-
Vedeu.timer("Clearing
|
|
83
|
+
Vedeu.timer("Clearing interface: '#{name}'") do
|
|
152
84
|
@_clear ||= Array.new(height) do |iy|
|
|
153
85
|
Array.new(width) do |ix|
|
|
154
|
-
|
|
155
|
-
Vedeu::Cells::Clear.new(colour: colour,
|
|
156
|
-
name: name,
|
|
157
|
-
position: position)
|
|
86
|
+
Vedeu::Cells::Clear.new(output_attributes(iy, ix))
|
|
158
87
|
end
|
|
159
88
|
end
|
|
160
89
|
end
|
|
161
90
|
end
|
|
162
91
|
|
|
163
|
-
# @
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
# @param pos_y [Fixnum]
|
|
175
|
-
# @param pos_x [Fixnum]
|
|
176
|
-
# @return [Vedeu::Geometries::Position]
|
|
177
|
-
# @todo Not sure if #to_s is required here. (GL: 2015-11-30)
|
|
178
|
-
def build_position(pos_y, pos_x)
|
|
179
|
-
Vedeu::Geometries::Position.new(pos_y, pos_x).to_s
|
|
92
|
+
# @param iy [Fixnum]
|
|
93
|
+
# @param ix [Fixnum]
|
|
94
|
+
# @return [Hash<Symbol => ]
|
|
95
|
+
def output_attributes(iy, ix)
|
|
96
|
+
{
|
|
97
|
+
colour: colour,
|
|
98
|
+
name: name,
|
|
99
|
+
position: Vedeu::Geometries::Position.new((y + iy), (x + ix)),
|
|
100
|
+
}
|
|
180
101
|
end
|
|
181
102
|
|
|
182
103
|
# @return [Fixnum]
|
|
183
104
|
def width
|
|
184
|
-
@_width ||=
|
|
185
|
-
geometry.bordered_width
|
|
186
|
-
|
|
187
|
-
else
|
|
188
|
-
geometry.width
|
|
189
|
-
|
|
190
|
-
end
|
|
105
|
+
@_width ||= geometry.width
|
|
191
106
|
end
|
|
192
107
|
|
|
193
108
|
# @return [Fixnum]
|
|
194
109
|
def y
|
|
195
|
-
@_y ||=
|
|
196
|
-
geometry.by
|
|
197
|
-
|
|
198
|
-
else
|
|
199
|
-
geometry.y
|
|
200
|
-
|
|
201
|
-
end
|
|
110
|
+
@_y ||= geometry.y
|
|
202
111
|
end
|
|
203
112
|
|
|
204
113
|
# @return [Fixnum]
|
|
205
114
|
def x
|
|
206
|
-
@_x ||=
|
|
207
|
-
geometry.bx
|
|
208
|
-
|
|
209
|
-
else
|
|
210
|
-
geometry.x
|
|
211
|
-
|
|
212
|
-
end
|
|
115
|
+
@_x ||= geometry.x
|
|
213
116
|
end
|
|
214
117
|
|
|
215
118
|
end # Clear
|
|
@@ -219,11 +122,7 @@ module Vedeu
|
|
|
219
122
|
# @api public
|
|
220
123
|
# @!method clear_by_name
|
|
221
124
|
# @see Vedeu::Interfaces::Clear.clear_by_name
|
|
222
|
-
# @api public
|
|
223
|
-
# @!method clear_content_by_name
|
|
224
|
-
# @see Vedeu::Interfaces.Clear.clear_content_by_name
|
|
225
125
|
def_delegators Vedeu::Interfaces::Clear,
|
|
226
|
-
:clear_by_name
|
|
227
|
-
:clear_content_by_name
|
|
126
|
+
:clear_by_name
|
|
228
127
|
|
|
229
128
|
end # Vedeu
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Vedeu
|
|
4
|
+
|
|
5
|
+
module Interfaces
|
|
6
|
+
|
|
7
|
+
# Clear the content of the named interface.
|
|
8
|
+
#
|
|
9
|
+
# @api private
|
|
10
|
+
#
|
|
11
|
+
class ClearContent
|
|
12
|
+
|
|
13
|
+
include Vedeu::Common
|
|
14
|
+
|
|
15
|
+
class << self
|
|
16
|
+
|
|
17
|
+
# {include:file:docs/dsl/by_method/clear_content_by_name.md}
|
|
18
|
+
# @return [Vedeu::Buffers::View]
|
|
19
|
+
# @see #initialize
|
|
20
|
+
def clear_content_by_name(name = Vedeu.focus)
|
|
21
|
+
new(name).render
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end # Eigenclass
|
|
25
|
+
|
|
26
|
+
# Return a new instance of Vedeu::Interfaces::ClearContent.
|
|
27
|
+
#
|
|
28
|
+
# @macro param_name
|
|
29
|
+
# @return [Vedeu::Interfaces::ClearContent]
|
|
30
|
+
def initialize(name = Vedeu.focus)
|
|
31
|
+
@name = present?(name) ? name : Vedeu.focus
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @return [Vedeu::Buffers::View]
|
|
35
|
+
def render
|
|
36
|
+
Vedeu.direct_write(optimised_output)
|
|
37
|
+
|
|
38
|
+
Vedeu.buffer_update(output)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
protected
|
|
42
|
+
|
|
43
|
+
# @!attribute [r] name
|
|
44
|
+
# @macro return_name
|
|
45
|
+
attr_reader :name
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
# @return [String] A string of blank characters.
|
|
50
|
+
def chars
|
|
51
|
+
@_chars ||= (' ' * width)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @return [Vedeu::Colours::Colour]
|
|
55
|
+
def colour
|
|
56
|
+
@_colour ||= interface.colour
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @macro geometry_by_name
|
|
60
|
+
def geometry
|
|
61
|
+
@_geometry ||= Vedeu.geometries.by_name(name)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @return [Fixnum]
|
|
65
|
+
def height
|
|
66
|
+
@_height ||= geometry.bordered_height
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# @macro interface_by_name
|
|
70
|
+
def interface
|
|
71
|
+
Vedeu.interfaces.by_name(name)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @return [String]
|
|
75
|
+
def optimised_output
|
|
76
|
+
Vedeu.timer("Optimised clearing content: '#{name}'") do
|
|
77
|
+
Array.new(height) do |iy|
|
|
78
|
+
[
|
|
79
|
+
Vedeu::Geometries::Position.new(y + iy, x).to_s,
|
|
80
|
+
colour.to_s,
|
|
81
|
+
chars,
|
|
82
|
+
].join
|
|
83
|
+
end.join + Vedeu::Geometries::Position.new(y, x).to_s
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# For each visible line of the interface, set the foreground and
|
|
88
|
+
# background colours to those specified when the interface was
|
|
89
|
+
# defined, then starting write space characters over the area
|
|
90
|
+
# which the interface occupies.
|
|
91
|
+
#
|
|
92
|
+
# @return [Array<Array<Vedeu::Cells::Char>>]
|
|
93
|
+
def output
|
|
94
|
+
Vedeu.timer("Clearing content: '#{name}'") do
|
|
95
|
+
@_clear ||= Array.new(height) do |iy|
|
|
96
|
+
Array.new(width) do |ix|
|
|
97
|
+
position = Vedeu::Geometries::Position.new((y + iy), (x + ix))
|
|
98
|
+
Vedeu::Cells::Clear.new(colour: colour,
|
|
99
|
+
name: name,
|
|
100
|
+
position: position)
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# @return [Fixnum]
|
|
107
|
+
def width
|
|
108
|
+
@_width ||= geometry.bordered_width
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @return [Fixnum]
|
|
112
|
+
def y
|
|
113
|
+
@_y ||= geometry.by
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# @return [Fixnum]
|
|
117
|
+
def x
|
|
118
|
+
@_x ||= geometry.bx
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
end # ClearContent
|
|
122
|
+
|
|
123
|
+
end # Interfaces
|
|
124
|
+
|
|
125
|
+
# @api public
|
|
126
|
+
# @!method clear_content_by_name
|
|
127
|
+
# @see Vedeu::Interfaces.ClearContent.clear_content_by_name
|
|
128
|
+
def_delegators Vedeu::Interfaces::ClearContent,
|
|
129
|
+
:clear_content_by_name
|
|
130
|
+
|
|
131
|
+
end # Vedeu
|
data/lib/vedeu/interfaces/dsl.rb
CHANGED
|
@@ -170,11 +170,9 @@ module Vedeu
|
|
|
170
170
|
#
|
|
171
171
|
# @return [Boolean]
|
|
172
172
|
def editable(value = true)
|
|
173
|
-
|
|
173
|
+
cursor(true) if Vedeu::Boolean.coerce(value)
|
|
174
174
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
model.editable = boolean
|
|
175
|
+
model.editable = Vedeu::Boolean.coerce(value)
|
|
178
176
|
end
|
|
179
177
|
|
|
180
178
|
# Set the interface to be editable.
|
|
@@ -292,9 +290,7 @@ module Vedeu
|
|
|
292
290
|
#
|
|
293
291
|
# @return [Boolean]
|
|
294
292
|
def visible(value = true)
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
model.visible = boolean
|
|
293
|
+
model.visible = Vedeu::Boolean.coerce(value)
|
|
298
294
|
end
|
|
299
295
|
|
|
300
296
|
# Set the zindex of the interface. This controls the render
|
|
@@ -5,12 +5,15 @@ module Vedeu
|
|
|
5
5
|
# This module allows the sharing of presentation concerns between
|
|
6
6
|
# the models: Interface, View, Line and Stream.
|
|
7
7
|
#
|
|
8
|
+
# @api private
|
|
9
|
+
#
|
|
8
10
|
module Presentation
|
|
9
11
|
|
|
10
12
|
end # Presentation
|
|
11
13
|
|
|
12
14
|
end # Vedeu
|
|
13
15
|
|
|
16
|
+
require 'vedeu/presentation/parent'
|
|
14
17
|
require 'vedeu/presentation/colour'
|
|
15
18
|
require 'vedeu/presentation/position'
|
|
16
19
|
require 'vedeu/presentation/styles'
|
|
@@ -10,6 +10,8 @@ module Vedeu
|
|
|
10
10
|
#
|
|
11
11
|
module Colour
|
|
12
12
|
|
|
13
|
+
include Vedeu::Presentation::Parent
|
|
14
|
+
|
|
13
15
|
# When the background colour for the model exists, return it,
|
|
14
16
|
# otherwise returns the parent background colour, or an empty
|
|
15
17
|
# Vedeu::Colours::Background.
|
|
@@ -100,11 +102,6 @@ module Vedeu
|
|
|
100
102
|
@_colour = @colour = colour
|
|
101
103
|
end
|
|
102
104
|
|
|
103
|
-
# @return [NilClass|void]
|
|
104
|
-
def parent
|
|
105
|
-
present?(@parent) ? @parent : nil
|
|
106
|
-
end
|
|
107
|
-
|
|
108
105
|
# @return [NilClass|String|Symbol]
|
|
109
106
|
def name
|
|
110
107
|
if present?(@name)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Vedeu
|
|
4
|
+
|
|
5
|
+
module Presentation
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# @api private
|
|
9
|
+
#
|
|
10
|
+
module Parent
|
|
11
|
+
|
|
12
|
+
# @return [NilClass|void]
|
|
13
|
+
def parent
|
|
14
|
+
present?(@parent) ? @parent : nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end # Parent
|
|
18
|
+
|
|
19
|
+
end # Presentation
|
|
20
|
+
|
|
21
|
+
end # Vedeu
|
|
@@ -6,9 +6,12 @@ module Vedeu
|
|
|
6
6
|
|
|
7
7
|
# Provides style related presentation behaviour.
|
|
8
8
|
#
|
|
9
|
+
# @api private
|
|
10
|
+
#
|
|
9
11
|
module Styles
|
|
10
12
|
|
|
11
13
|
include Vedeu::Common
|
|
14
|
+
include Vedeu::Presentation::Parent
|
|
12
15
|
|
|
13
16
|
# @return [NilClass|String|Symbol]
|
|
14
17
|
def name
|
|
@@ -21,11 +24,6 @@ module Vedeu
|
|
|
21
24
|
end
|
|
22
25
|
end
|
|
23
26
|
|
|
24
|
-
# @return [NilClass|void]
|
|
25
|
-
def parent
|
|
26
|
-
present?(@parent) ? @parent : nil
|
|
27
|
-
end
|
|
28
|
-
|
|
29
27
|
# When the style for the model exists, return it, otherwise
|
|
30
28
|
# returns the parent style, or an empty
|
|
31
29
|
# {Vedeu::Presentation::Style}.
|
data/lib/vedeu/version.rb
CHANGED
data/lib/vedeu/views/line.rb
CHANGED
|
@@ -29,6 +29,7 @@ module Vedeu
|
|
|
29
29
|
include Vedeu::Views::DefaultAttributes
|
|
30
30
|
include Vedeu::Repositories::Model
|
|
31
31
|
include Vedeu::Presentation
|
|
32
|
+
include Vedeu::Presentation::Parent
|
|
32
33
|
include Vedeu::Presentation::Colour
|
|
33
34
|
include Vedeu::Presentation::Position
|
|
34
35
|
include Vedeu::Presentation::Styles
|
|
@@ -101,11 +102,6 @@ module Vedeu
|
|
|
101
102
|
end
|
|
102
103
|
end
|
|
103
104
|
|
|
104
|
-
# @return [NilClass|void]
|
|
105
|
-
def parent
|
|
106
|
-
present?(@parent) ? @parent : nil
|
|
107
|
-
end
|
|
108
|
-
|
|
109
105
|
# Returns the size of the content in characters without
|
|
110
106
|
# formatting.
|
|
111
107
|
#
|
data/lib/vedeu/views/stream.rb
CHANGED
|
@@ -30,6 +30,7 @@ module Vedeu
|
|
|
30
30
|
include Vedeu::Views::DefaultAttributes
|
|
31
31
|
include Vedeu::Repositories::Model
|
|
32
32
|
include Vedeu::Presentation
|
|
33
|
+
include Vedeu::Presentation::Parent
|
|
33
34
|
include Vedeu::Presentation::Colour
|
|
34
35
|
include Vedeu::Presentation::Position
|
|
35
36
|
include Vedeu::Presentation::Styles
|
|
@@ -105,11 +106,6 @@ module Vedeu
|
|
|
105
106
|
end
|
|
106
107
|
end
|
|
107
108
|
|
|
108
|
-
# @return [NilClass|void]
|
|
109
|
-
def parent
|
|
110
|
-
present?(@parent) ? @parent : nil
|
|
111
|
-
end
|
|
112
|
-
|
|
113
109
|
end # Stream
|
|
114
110
|
|
|
115
111
|
end # Views
|
data/lib/vedeu/views/view.rb
CHANGED
|
@@ -31,6 +31,7 @@ module Vedeu
|
|
|
31
31
|
extend Forwardable
|
|
32
32
|
include Vedeu::Repositories::Model
|
|
33
33
|
include Vedeu::Presentation
|
|
34
|
+
include Vedeu::Presentation::Parent
|
|
34
35
|
include Vedeu::Presentation::Colour
|
|
35
36
|
include Vedeu::Presentation::Position
|
|
36
37
|
include Vedeu::Presentation::Styles
|
|
@@ -118,11 +119,6 @@ module Vedeu
|
|
|
118
119
|
end
|
|
119
120
|
end
|
|
120
121
|
|
|
121
|
-
# @return [NilClass|void]
|
|
122
|
-
def parent
|
|
123
|
-
present?(@parent) ? @parent : nil
|
|
124
|
-
end
|
|
125
|
-
|
|
126
122
|
# Store the view in its respective buffer.
|
|
127
123
|
#
|
|
128
124
|
# @param refresh [Boolean] Should the buffer of the view be
|
|
@@ -14,6 +14,24 @@ module Vedeu
|
|
|
14
14
|
it { instance.must_be_instance_of(Vedeu::Boolean) }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
describe '.coerce' do
|
|
18
|
+
subject { described.coerce(_value) }
|
|
19
|
+
|
|
20
|
+
context 'when the value is falsy' do
|
|
21
|
+
it { subject.must_equal(false) }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
context 'when the value is truthy' do
|
|
25
|
+
let(:_value) { 0 }
|
|
26
|
+
|
|
27
|
+
it { subject.must_equal(true) }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe '#coerce' do
|
|
32
|
+
it { instance.must_respond_to(:coerce) }
|
|
33
|
+
end
|
|
34
|
+
|
|
17
35
|
describe '#false?' do
|
|
18
36
|
subject { instance.false? }
|
|
19
37
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
module Vedeu
|
|
6
|
+
|
|
7
|
+
describe 'Bindings' do
|
|
8
|
+
it { Vedeu.bound?(:_clear_view_).must_equal(true) }
|
|
9
|
+
it { Vedeu.bound?(:_clear_view_content_).must_equal(true) }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Interfaces
|
|
13
|
+
|
|
14
|
+
describe ClearContent do
|
|
15
|
+
|
|
16
|
+
let(:described) { Vedeu::Interfaces::ClearContent }
|
|
17
|
+
let(:instance) { described.new(_name) }
|
|
18
|
+
let(:_name) { :vedeu_interfaces_clear }
|
|
19
|
+
|
|
20
|
+
describe '#initialize' do
|
|
21
|
+
it { instance.must_be_instance_of(described) }
|
|
22
|
+
it { instance.instance_variable_get('@name').must_equal(_name) }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe '.clear_content_by_name' do
|
|
26
|
+
it { described.must_respond_to(:clear_content_by_name) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe '#render' do
|
|
30
|
+
let(:interface) {
|
|
31
|
+
Vedeu::Interfaces::Interface.new(name: _name, visible: visible)
|
|
32
|
+
}
|
|
33
|
+
let(:colour) { interface.colour }
|
|
34
|
+
let(:visible) { true }
|
|
35
|
+
let(:geometry) {
|
|
36
|
+
Vedeu::Geometries::Geometry.new(name: _name, x: 1, y: 1, xn: 2, yn: 2)
|
|
37
|
+
}
|
|
38
|
+
let(:output) {
|
|
39
|
+
[
|
|
40
|
+
[
|
|
41
|
+
Vedeu::Cells::Clear.new(colour: colour,
|
|
42
|
+
name: _name,
|
|
43
|
+
position: [1, 1]),
|
|
44
|
+
Vedeu::Cells::Clear.new(colour: colour,
|
|
45
|
+
name: _name,
|
|
46
|
+
position: [1, 2]),
|
|
47
|
+
], [
|
|
48
|
+
Vedeu::Cells::Clear.new(colour: colour,
|
|
49
|
+
name: _name,
|
|
50
|
+
position: [2, 1]),
|
|
51
|
+
Vedeu::Cells::Clear.new(colour: colour,
|
|
52
|
+
name: _name,
|
|
53
|
+
position: [2, 2]),
|
|
54
|
+
]
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
before do
|
|
59
|
+
Vedeu.interfaces.stubs(:by_name).returns(interface)
|
|
60
|
+
Vedeu.geometries.stubs(:by_name).returns(geometry)
|
|
61
|
+
Vedeu.stubs(:direct_write)
|
|
62
|
+
Vedeu.stubs(:buffer_update)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
subject { instance.render }
|
|
66
|
+
|
|
67
|
+
# it { subject.must_be_instance_of(Vedeu::Buffers::View) }
|
|
68
|
+
it do
|
|
69
|
+
Vedeu.expects(:direct_write)
|
|
70
|
+
subject
|
|
71
|
+
end
|
|
72
|
+
it do
|
|
73
|
+
Vedeu.expects(:buffer_update)
|
|
74
|
+
subject
|
|
75
|
+
end
|
|
76
|
+
# it { subject.must_equal(output) }
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end # ClearContent
|
|
80
|
+
|
|
81
|
+
end # Interfaces
|
|
82
|
+
|
|
83
|
+
end # Vedeu
|
|
@@ -14,19 +14,12 @@ module Vedeu
|
|
|
14
14
|
describe Clear do
|
|
15
15
|
|
|
16
16
|
let(:described) { Vedeu::Interfaces::Clear }
|
|
17
|
-
let(:instance) { described.new(_name
|
|
18
|
-
let(:options) {
|
|
19
|
-
{
|
|
20
|
-
content_only: false,
|
|
21
|
-
direct: false,
|
|
22
|
-
}
|
|
23
|
-
}
|
|
17
|
+
let(:instance) { described.new(_name) }
|
|
24
18
|
let(:_name) { :vedeu_interfaces_clear }
|
|
25
19
|
|
|
26
20
|
describe '#initialize' do
|
|
27
21
|
it { instance.must_be_instance_of(described) }
|
|
28
22
|
it { instance.instance_variable_get('@name').must_equal(_name) }
|
|
29
|
-
it { instance.instance_variable_get('@options').must_equal(options) }
|
|
30
23
|
end
|
|
31
24
|
|
|
32
25
|
describe '.render' do
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
module Vedeu
|
|
6
|
+
|
|
7
|
+
class PresentationParentTestClass
|
|
8
|
+
|
|
9
|
+
include Vedeu::Presentation::Parent
|
|
10
|
+
|
|
11
|
+
def initialize(attributes = {})
|
|
12
|
+
@colour = attributes[:colour]
|
|
13
|
+
@parent = attributes[:parent]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end # PresentationParentTestClass
|
|
17
|
+
|
|
18
|
+
module Presentation
|
|
19
|
+
|
|
20
|
+
describe Parent do
|
|
21
|
+
|
|
22
|
+
let(:described) { Vedeu::Presentation::Parent }
|
|
23
|
+
let(:included_described) { Vedeu::PresentationParentTestClass }
|
|
24
|
+
let(:included_instance) { included_described.new(attributes) }
|
|
25
|
+
let(:attributes) {
|
|
26
|
+
{
|
|
27
|
+
parent: Vedeu::PresentationParentTestClass.new
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
describe '#parent' do
|
|
32
|
+
it { included_instance.must_respond_to(:parent) }
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end # Parent
|
|
36
|
+
|
|
37
|
+
end # Presentation
|
|
38
|
+
|
|
39
|
+
end # Vedeu
|
|
@@ -4,7 +4,7 @@ require 'test_helper'
|
|
|
4
4
|
|
|
5
5
|
module Vedeu
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class ParentPresentationStylesTestClass
|
|
8
8
|
|
|
9
9
|
include Vedeu::Presentation
|
|
10
10
|
include Vedeu::Presentation::Colour
|
|
@@ -18,9 +18,9 @@ module Vedeu
|
|
|
18
18
|
@parent = nil
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
end #
|
|
21
|
+
end # ParentPresentationStylesTestClass
|
|
22
22
|
|
|
23
|
-
class
|
|
23
|
+
class PresentationStylesTestClass
|
|
24
24
|
|
|
25
25
|
include Vedeu::Presentation
|
|
26
26
|
include Vedeu::Presentation::Colour
|
|
@@ -34,14 +34,14 @@ module Vedeu
|
|
|
34
34
|
@parent = attributes[:parent]
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
end #
|
|
37
|
+
end # PresentationStylesTestClass
|
|
38
38
|
|
|
39
39
|
module Presentation
|
|
40
40
|
|
|
41
41
|
describe Styles do
|
|
42
42
|
|
|
43
43
|
let(:described) { Vedeu::Presentation::Styles }
|
|
44
|
-
let(:included_described) { Vedeu::
|
|
44
|
+
let(:included_described) { Vedeu::PresentationStylesTestClass }
|
|
45
45
|
let(:included_instance) { included_described.new(attributes) }
|
|
46
46
|
let(:attributes) {
|
|
47
47
|
{
|
|
@@ -49,7 +49,7 @@ module Vedeu
|
|
|
49
49
|
style: style,
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
let(:parent) { Vedeu::
|
|
52
|
+
let(:parent) { Vedeu::ParentPresentationStylesTestClass.new }
|
|
53
53
|
let(:style) { ['bold'] }
|
|
54
54
|
|
|
55
55
|
describe '#style' do
|
|
@@ -84,7 +84,7 @@ module Vedeu
|
|
|
84
84
|
it { subject.must_be_instance_of(Vedeu::Presentation::Style) }
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
end #
|
|
87
|
+
end # Styles
|
|
88
88
|
|
|
89
89
|
end # Presentation
|
|
90
90
|
|
|
@@ -59,19 +59,15 @@ module Vedeu
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
describe '#client' do
|
|
62
|
-
|
|
62
|
+
it { instance.must_respond_to(:client) }
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
describe '#client=' do
|
|
66
|
-
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
describe '#parent' do
|
|
70
|
-
it { instance.must_respond_to(:parent) }
|
|
66
|
+
it { instance.must_respond_to(:client=) }
|
|
71
67
|
end
|
|
72
68
|
|
|
73
69
|
describe '#parent=' do
|
|
74
|
-
|
|
70
|
+
it { instance.must_respond_to(:parent=) }
|
|
75
71
|
end
|
|
76
72
|
|
|
77
73
|
describe '#add' do
|
data/vedeu.gemspec
CHANGED
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
|
32
32
|
spec.add_development_dependency 'simplecov-console', '0.3.0'
|
|
33
33
|
spec.add_development_dependency 'yard', '0.8.7.6'
|
|
34
34
|
|
|
35
|
-
spec.add_dependency 'bundler', '~> 1.
|
|
35
|
+
spec.add_dependency 'bundler', '~> 1.11'
|
|
36
36
|
spec.add_dependency 'rake', '~> 10.5'
|
|
37
37
|
spec.add_dependency 'thor', '0.19.1'
|
|
38
38
|
spec.add_dependency 'vedeu_cli', '0.0.10'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vedeu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.25
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gavin Laking
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-04-
|
|
11
|
+
date: 2016-04-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: guard
|
|
@@ -156,14 +156,14 @@ dependencies:
|
|
|
156
156
|
requirements:
|
|
157
157
|
- - "~>"
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '1.
|
|
159
|
+
version: '1.11'
|
|
160
160
|
type: :runtime
|
|
161
161
|
prerelease: false
|
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
|
164
164
|
- - "~>"
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '1.
|
|
166
|
+
version: '1.11'
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
168
|
name: rake
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -559,6 +559,8 @@ files:
|
|
|
559
559
|
- integrations/dsl_app_020.rb
|
|
560
560
|
- integrations/dsl_app_021.rb
|
|
561
561
|
- integrations/dsl_app_022.rb
|
|
562
|
+
- integrations/dsl_app_030.rb
|
|
563
|
+
- integrations/dsl_app_031.rb
|
|
562
564
|
- integrations/dsl_app_border_001.rb
|
|
563
565
|
- integrations/dsl_app_border_002.rb
|
|
564
566
|
- integrations/dsl_app_border_003.rb
|
|
@@ -570,6 +572,7 @@ files:
|
|
|
570
572
|
- integrations/dsl_app_border_009.rb
|
|
571
573
|
- integrations/dsl_app_border_010.rb
|
|
572
574
|
- integrations/dsl_app_border_011.rb
|
|
575
|
+
- integrations/dsl_app_border_012.rb
|
|
573
576
|
- integrations/expected/342_streams.out
|
|
574
577
|
- integrations/expected/dsl_app_001.out
|
|
575
578
|
- integrations/expected/dsl_app_002.out
|
|
@@ -590,6 +593,8 @@ files:
|
|
|
590
593
|
- integrations/expected/dsl_app_017.out
|
|
591
594
|
- integrations/expected/dsl_app_021.out
|
|
592
595
|
- integrations/expected/dsl_app_022.out
|
|
596
|
+
- integrations/expected/dsl_app_030.out
|
|
597
|
+
- integrations/expected/dsl_app_031.out
|
|
593
598
|
- integrations/expected/dsl_app_border_001.out
|
|
594
599
|
- integrations/expected/dsl_app_border_002.out
|
|
595
600
|
- integrations/expected/dsl_app_border_003.out
|
|
@@ -601,6 +606,7 @@ files:
|
|
|
601
606
|
- integrations/expected/dsl_app_border_009.out
|
|
602
607
|
- integrations/expected/dsl_app_border_010.out
|
|
603
608
|
- integrations/expected/dsl_app_border_011.out
|
|
609
|
+
- integrations/expected/dsl_app_border_012.out
|
|
604
610
|
- integrations/support/test_interface.rb
|
|
605
611
|
- integrations/support/test_interface_021.rb
|
|
606
612
|
- integrations/support/test_interface_022.rb
|
|
@@ -782,6 +788,7 @@ files:
|
|
|
782
788
|
- lib/vedeu/input/translator.rb
|
|
783
789
|
- lib/vedeu/interfaces/all.rb
|
|
784
790
|
- lib/vedeu/interfaces/clear.rb
|
|
791
|
+
- lib/vedeu/interfaces/clear_content.rb
|
|
785
792
|
- lib/vedeu/interfaces/dsl.rb
|
|
786
793
|
- lib/vedeu/interfaces/interface.rb
|
|
787
794
|
- lib/vedeu/interfaces/null.rb
|
|
@@ -819,6 +826,7 @@ files:
|
|
|
819
826
|
- lib/vedeu/plugins/plugins.rb
|
|
820
827
|
- lib/vedeu/presentation/all.rb
|
|
821
828
|
- lib/vedeu/presentation/colour.rb
|
|
829
|
+
- lib/vedeu/presentation/parent.rb
|
|
822
830
|
- lib/vedeu/presentation/position.rb
|
|
823
831
|
- lib/vedeu/presentation/presentation.rb
|
|
824
832
|
- lib/vedeu/presentation/style.rb
|
|
@@ -1015,6 +1023,7 @@ files:
|
|
|
1015
1023
|
- test/lib/vedeu/input/repository_test.rb
|
|
1016
1024
|
- test/lib/vedeu/input/store_test.rb
|
|
1017
1025
|
- test/lib/vedeu/input/translator_test.rb
|
|
1026
|
+
- test/lib/vedeu/interfaces/clear_content_test.rb
|
|
1018
1027
|
- test/lib/vedeu/interfaces/clear_test.rb
|
|
1019
1028
|
- test/lib/vedeu/interfaces/dsl_test.rb
|
|
1020
1029
|
- test/lib/vedeu/interfaces/interface_test.rb
|
|
@@ -1045,6 +1054,7 @@ files:
|
|
|
1045
1054
|
- test/lib/vedeu/plugins/plugin_test.rb
|
|
1046
1055
|
- test/lib/vedeu/plugins/plugins_test.rb
|
|
1047
1056
|
- test/lib/vedeu/presentation/colour_test.rb
|
|
1057
|
+
- test/lib/vedeu/presentation/parent_test.rb
|
|
1048
1058
|
- test/lib/vedeu/presentation/position_test.rb
|
|
1049
1059
|
- test/lib/vedeu/presentation/presentation_test.rb
|
|
1050
1060
|
- test/lib/vedeu/presentation/style_test.rb
|
|
@@ -1277,6 +1287,7 @@ test_files:
|
|
|
1277
1287
|
- test/lib/vedeu/input/repository_test.rb
|
|
1278
1288
|
- test/lib/vedeu/input/store_test.rb
|
|
1279
1289
|
- test/lib/vedeu/input/translator_test.rb
|
|
1290
|
+
- test/lib/vedeu/interfaces/clear_content_test.rb
|
|
1280
1291
|
- test/lib/vedeu/interfaces/clear_test.rb
|
|
1281
1292
|
- test/lib/vedeu/interfaces/dsl_test.rb
|
|
1282
1293
|
- test/lib/vedeu/interfaces/interface_test.rb
|
|
@@ -1307,6 +1318,7 @@ test_files:
|
|
|
1307
1318
|
- test/lib/vedeu/plugins/plugin_test.rb
|
|
1308
1319
|
- test/lib/vedeu/plugins/plugins_test.rb
|
|
1309
1320
|
- test/lib/vedeu/presentation/colour_test.rb
|
|
1321
|
+
- test/lib/vedeu/presentation/parent_test.rb
|
|
1310
1322
|
- test/lib/vedeu/presentation/position_test.rb
|
|
1311
1323
|
- test/lib/vedeu/presentation/presentation_test.rb
|
|
1312
1324
|
- test/lib/vedeu/presentation/style_test.rb
|