vedeu 0.4.53 → 0.4.54

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vedeu/api.rb +68 -5
  3. data/lib/vedeu/bindings/system.rb +0 -15
  4. data/lib/vedeu/bindings/visibility.rb +57 -13
  5. data/lib/vedeu/buffers/buffer.rb +5 -56
  6. data/lib/vedeu/cursor/cursor.rb +24 -16
  7. data/lib/vedeu/exceptions.rb +1 -1
  8. data/lib/vedeu/models/group.rb +39 -4
  9. data/lib/vedeu/models/interface.rb +41 -5
  10. data/lib/vedeu/null/buffer.rb +5 -0
  11. data/lib/vedeu/null/interface.rb +15 -0
  12. data/lib/vedeu/output/all.rb +1 -1
  13. data/lib/vedeu/output/background.rb +1 -1
  14. data/lib/vedeu/output/clear/named_interface.rb +0 -2
  15. data/lib/vedeu/output/{translator.rb → colour_translator.rb} +5 -5
  16. data/lib/vedeu/output/foreground.rb +1 -1
  17. data/lib/vedeu/output/render_border.rb +0 -1
  18. data/lib/vedeu/repositories/model.rb +15 -6
  19. data/lib/vedeu/repositories/repositories/buffers.rb +6 -0
  20. data/lib/vedeu/repositories/repositories/cursors.rb +6 -0
  21. data/lib/vedeu/repositories/repositories/groups.rb +6 -0
  22. data/lib/vedeu/repositories/repositories/interfaces.rb +6 -0
  23. data/lib/vedeu/support/all.rb +1 -2
  24. data/lib/vedeu/support/template.rb +7 -0
  25. data/lib/vedeu/support/toggleable.rb +98 -0
  26. data/lib/vedeu/version.rb +1 -1
  27. data/test/lib/vedeu/api_test.rb +7 -1
  28. data/test/lib/vedeu/bindings/system_test.rb +5 -16
  29. data/test/lib/vedeu/bindings/visibility_test.rb +4 -0
  30. data/test/lib/vedeu/buffers/buffer_test.rb +9 -91
  31. data/test/lib/vedeu/cursor/cursor_test.rb +4 -6
  32. data/test/lib/vedeu/dsl/geometry_test.rb +24 -0
  33. data/test/lib/vedeu/models/group_test.rb +16 -14
  34. data/test/lib/vedeu/models/interface_test.rb +1 -1
  35. data/test/lib/vedeu/null/buffer_test.rb +6 -0
  36. data/test/lib/vedeu/null/interface_test.rb +18 -0
  37. data/test/lib/vedeu/output/clear/named_interface_test.rb +10 -19
  38. data/test/lib/vedeu/output/{translator_test.rb → colour_translator_test.rb} +5 -5
  39. data/test/lib/vedeu/support/toggleable_test.rb +69 -0
  40. data/vedeu.gemspec +1 -1
  41. metadata +10 -13
  42. data/lib/vedeu/support/options.rb +0 -70
  43. data/lib/vedeu/support/visibility.rb +0 -122
  44. data/test/lib/vedeu/support/options_test.rb +0 -70
  45. data/test/lib/vedeu/support/visibility_test.rb +0 -95
@@ -61,8 +61,8 @@ module Vedeu
61
61
  it { instance.must_respond_to(:zindex) }
62
62
  it { instance.must_respond_to(:zindex=) }
63
63
  it { instance.must_respond_to(:visible) }
64
- it { instance.must_respond_to(:visible?) }
65
64
  it { instance.must_respond_to(:visible=) }
65
+ it { instance.must_respond_to(:visible?) }
66
66
  it { instance.must_respond_to(:attributes) }
67
67
  it { instance.must_respond_to(:lines=) }
68
68
  end
@@ -45,6 +45,12 @@ module Vedeu
45
45
  it { subject.must_be_instance_of(NilClass) }
46
46
  end
47
47
 
48
+ describe '#toggle' do
49
+ subject { instance.toggle }
50
+
51
+ it { subject.must_be_instance_of(NilClass) }
52
+ end
53
+
48
54
  end # Buffer
49
55
 
50
56
  end # Null
@@ -25,6 +25,12 @@ module Vedeu
25
25
  it { subject.must_be_instance_of(Hash) }
26
26
  end
27
27
 
28
+ describe '#hide' do
29
+ subject { instance.hide }
30
+
31
+ it { subject.must_be_instance_of(NilClass) }
32
+ end
33
+
28
34
  describe '#null?' do
29
35
  subject { instance.null? }
30
36
 
@@ -37,12 +43,24 @@ module Vedeu
37
43
  it { subject.must_be_instance_of(NilClass) }
38
44
  end
39
45
 
46
+ describe '#show' do
47
+ subject { instance.show }
48
+
49
+ it { subject.must_be_instance_of(NilClass) }
50
+ end
51
+
40
52
  describe '#store' do
41
53
  subject { instance.store }
42
54
 
43
55
  it { subject.must_be_instance_of(Vedeu::Null::Interface) }
44
56
  end
45
57
 
58
+ describe '#toggle' do
59
+ subject { instance.toggle }
60
+
61
+ it { subject.must_be_instance_of(NilClass) }
62
+ end
63
+
46
64
  describe '#visible?' do
47
65
  subject { instance.visible? }
48
66
 
@@ -35,30 +35,21 @@ module Vedeu
35
35
 
36
36
  subject { instance.render }
37
37
 
38
- context 'when the interface is visible' do
39
- let(:output) {
38
+ let(:output) {
39
+ [
40
40
  [
41
- [
42
- Vedeu::Char.new(value: ' ', position: [1, 1]),
43
- Vedeu::Char.new(value: ' ', position: [1, 2]),
41
+ Vedeu::Char.new(value: ' ', position: [1, 1]),
42
+ Vedeu::Char.new(value: ' ', position: [1, 2]),
44
43
 
45
- ], [
46
- Vedeu::Char.new(value: ' ', position: [2, 1]),
47
- Vedeu::Char.new(value: ' ', position: [2, 2]),
44
+ ], [
45
+ Vedeu::Char.new(value: ' ', position: [2, 1]),
46
+ Vedeu::Char.new(value: ' ', position: [2, 2]),
48
47
 
49
- ]
50
48
  ]
51
- }
52
-
53
- it { subject.must_equal(output) }
54
- end
55
-
56
- context 'when the interface is not visible' do
57
- let(:visible) { false }
58
-
59
- it { subject.must_equal([]) }
60
- end
49
+ ]
50
+ }
61
51
 
52
+ it { subject.must_equal(output) }
62
53
  end
63
54
 
64
55
  end # NamedInterface
@@ -2,9 +2,9 @@ require 'test_helper'
2
2
 
3
3
  module Vedeu
4
4
 
5
- describe Translator do
5
+ describe ColourTranslator do
6
6
 
7
- let(:described) { Vedeu::Translator }
7
+ let(:described) { Vedeu::ColourTranslator }
8
8
  let(:instance) { described.new(colour) }
9
9
  let(:colour) { '#ff0000' }
10
10
 
@@ -27,7 +27,7 @@ module Vedeu
27
27
  subject { described.coerce(_value) }
28
28
 
29
29
  context 'when the value is nil' do
30
- it { subject.must_be_instance_of(Vedeu::Translator) }
30
+ it { subject.must_be_instance_of(Vedeu::ColourTranslator) }
31
31
 
32
32
  it {
33
33
  Vedeu::Background.coerce(_value).
@@ -56,7 +56,7 @@ module Vedeu
56
56
  context 'when the value is not a polymorphic Colour' do
57
57
  let(:_value) { '#aadd00' }
58
58
 
59
- it { subject.must_be_instance_of(Vedeu::Translator) }
59
+ it { subject.must_be_instance_of(Vedeu::ColourTranslator) }
60
60
  end
61
61
  end
62
62
 
@@ -151,6 +151,6 @@ module Vedeu
151
151
  end
152
152
  end
153
153
 
154
- end # Translator
154
+ end # ColourTranslator
155
155
 
156
156
  end # Vedeu
@@ -0,0 +1,69 @@
1
+ require 'test_helper'
2
+
3
+ module Vedeu
4
+
5
+ class ToggleableTestClass
6
+ include Vedeu::Toggleable
7
+
8
+ def initialize(boolean)
9
+ @visible = boolean
10
+ end
11
+
12
+ def store
13
+ self
14
+ end
15
+ end
16
+
17
+ describe Toggleable do
18
+
19
+ let(:described) { Vedeu::Toggleable }
20
+ let(:instance) { Vedeu::ToggleableTestClass.new(visible) }
21
+ let(:visible) { false }
22
+
23
+ describe 'accessors' do
24
+ it { instance.must_respond_to(:visible) }
25
+ it { instance.must_respond_to(:visible=) }
26
+ it { instance.must_respond_to(:visible?) }
27
+ end
28
+
29
+ describe '#hide' do
30
+ subject { instance.hide }
31
+
32
+ it {
33
+ subject
34
+ instance.instance_variable_get('@visible').must_equal(false)
35
+ }
36
+ end
37
+
38
+ describe '#show' do
39
+ subject { instance.show }
40
+
41
+ it {
42
+ subject
43
+ instance.instance_variable_get('@visible').must_equal(true)
44
+ }
45
+ end
46
+
47
+ describe '#toggle' do
48
+ subject { instance.toggle }
49
+
50
+ context 'when the model is visible' do
51
+ let(:visible) { true }
52
+
53
+ it {
54
+ subject
55
+ instance.instance_variable_get('@visible').must_equal(false)
56
+ }
57
+ end
58
+
59
+ context 'when the model is not visible' do
60
+ it {
61
+ subject
62
+ instance.instance_variable_get('@visible').must_equal(true)
63
+ }
64
+ end
65
+ end
66
+
67
+ end # Toggleable
68
+
69
+ end # Vedeu
data/vedeu.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'guard', '2.12.8'
24
24
  spec.add_development_dependency 'guard-minitest', '2.4.4'
25
25
  spec.add_development_dependency 'minitest', '5.7.0'
26
- spec.add_development_dependency 'minitest-reporters', '1.0.18'
26
+ spec.add_development_dependency 'minitest-reporters', '1.0.19'
27
27
  spec.add_development_dependency 'mocha', '1.1.0'
28
28
  spec.add_development_dependency 'pry', '0.10.1'
29
29
  spec.add_development_dependency 'rubocop', '0.32.1'
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.4.53
4
+ version: 0.4.54
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-16 00:00:00.000000000 Z
11
+ date: 2015-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: guard
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.18
61
+ version: 1.0.19
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.18
68
+ version: 1.0.19
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mocha
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -390,6 +390,7 @@ files:
390
390
  - lib/vedeu/output/clear/named_group.rb
391
391
  - lib/vedeu/output/clear/named_interface.rb
392
392
  - lib/vedeu/output/colour.rb
393
+ - lib/vedeu/output/colour_translator.rb
393
394
  - lib/vedeu/output/compressor.rb
394
395
  - lib/vedeu/output/esc.rb
395
396
  - lib/vedeu/output/foreground.rb
@@ -411,7 +412,6 @@ files:
411
412
  - lib/vedeu/output/style.rb
412
413
  - lib/vedeu/output/templates/html_renderer.vedeu
413
414
  - lib/vedeu/output/text.rb
414
- - lib/vedeu/output/translator.rb
415
415
  - lib/vedeu/output/view_helpers/all.rb
416
416
  - lib/vedeu/output/view_helpers/view_helpers.rb
417
417
  - lib/vedeu/output/viewport.rb
@@ -441,11 +441,10 @@ files:
441
441
  - lib/vedeu/support/all.rb
442
442
  - lib/vedeu/support/common.rb
443
443
  - lib/vedeu/support/log.rb
444
- - lib/vedeu/support/options.rb
445
444
  - lib/vedeu/support/template.rb
446
445
  - lib/vedeu/support/terminal.rb
447
446
  - lib/vedeu/support/timer.rb
448
- - lib/vedeu/support/visibility.rb
447
+ - lib/vedeu/support/toggleable.rb
449
448
  - lib/vedeu/templating/all.rb
450
449
  - lib/vedeu/templating/directive.rb
451
450
  - lib/vedeu/templating/helpers.rb
@@ -535,6 +534,7 @@ files:
535
534
  - test/lib/vedeu/output/clear/named_group_test.rb
536
535
  - test/lib/vedeu/output/clear/named_interface_test.rb
537
536
  - test/lib/vedeu/output/colour_test.rb
537
+ - test/lib/vedeu/output/colour_translator_test.rb
538
538
  - test/lib/vedeu/output/compressor_test.rb
539
539
  - test/lib/vedeu/output/esc_test.rb
540
540
  - test/lib/vedeu/output/foreground_test.rb
@@ -555,7 +555,6 @@ files:
555
555
  - test/lib/vedeu/output/renderers/text_test.rb
556
556
  - test/lib/vedeu/output/style_test.rb
557
557
  - test/lib/vedeu/output/text_test.rb
558
- - test/lib/vedeu/output/translator_test.rb
559
558
  - test/lib/vedeu/output/view_helpers/view_helpers_test.rb
560
559
  - test/lib/vedeu/output/viewport_test.rb
561
560
  - test/lib/vedeu/output/virtual_buffer_test.rb
@@ -581,11 +580,10 @@ files:
581
580
  - test/lib/vedeu/repositories/store_test.rb
582
581
  - test/lib/vedeu/support/common_test.rb
583
582
  - test/lib/vedeu/support/log_test.rb
584
- - test/lib/vedeu/support/options_test.rb
585
583
  - test/lib/vedeu/support/template_test.rb
586
584
  - test/lib/vedeu/support/terminal_test.rb
587
585
  - test/lib/vedeu/support/timer_test.rb
588
- - test/lib/vedeu/support/visibility_test.rb
586
+ - test/lib/vedeu/support/toggleable_test.rb
589
587
  - test/lib/vedeu/templating/directive_test.rb
590
588
  - test/lib/vedeu/templating/helpers_test.rb
591
589
  - test/lib/vedeu/templating/preprocessor_test.rb
@@ -705,6 +703,7 @@ test_files:
705
703
  - test/lib/vedeu/output/clear/named_group_test.rb
706
704
  - test/lib/vedeu/output/clear/named_interface_test.rb
707
705
  - test/lib/vedeu/output/colour_test.rb
706
+ - test/lib/vedeu/output/colour_translator_test.rb
708
707
  - test/lib/vedeu/output/compressor_test.rb
709
708
  - test/lib/vedeu/output/esc_test.rb
710
709
  - test/lib/vedeu/output/foreground_test.rb
@@ -725,7 +724,6 @@ test_files:
725
724
  - test/lib/vedeu/output/renderers/text_test.rb
726
725
  - test/lib/vedeu/output/style_test.rb
727
726
  - test/lib/vedeu/output/text_test.rb
728
- - test/lib/vedeu/output/translator_test.rb
729
727
  - test/lib/vedeu/output/view_helpers/view_helpers_test.rb
730
728
  - test/lib/vedeu/output/viewport_test.rb
731
729
  - test/lib/vedeu/output/virtual_buffer_test.rb
@@ -751,11 +749,10 @@ test_files:
751
749
  - test/lib/vedeu/repositories/store_test.rb
752
750
  - test/lib/vedeu/support/common_test.rb
753
751
  - test/lib/vedeu/support/log_test.rb
754
- - test/lib/vedeu/support/options_test.rb
755
752
  - test/lib/vedeu/support/template_test.rb
756
753
  - test/lib/vedeu/support/terminal_test.rb
757
754
  - test/lib/vedeu/support/timer_test.rb
758
- - test/lib/vedeu/support/visibility_test.rb
755
+ - test/lib/vedeu/support/toggleable_test.rb
759
756
  - test/lib/vedeu/templating/directive_test.rb
760
757
  - test/lib/vedeu/templating/helpers_test.rb
761
758
  - test/lib/vedeu/templating/preprocessor_test.rb
@@ -1,70 +0,0 @@
1
- module Vedeu
2
-
3
- # Converts an options Hash into a class containing methods for each of the
4
- # keys, which when called returns the value associated. When the value is
5
- # either true or false, an additional predicate method is created.
6
- #
7
- # @api private
8
- class Options
9
-
10
- # @!attribute [r] _defined
11
- # @return [Array<Symbol>]
12
- attr_reader :_defined
13
-
14
- # @param options [Hash]
15
- # @return [Vedeu::Options]
16
- def self.build(options = {})
17
- new(options)._build
18
- end
19
-
20
- # Returns a new instance of Vedeu::Options.
21
- #
22
- # @param options [Hash]
23
- # @return [Vedeu::Options]
24
- def initialize(options = {})
25
- @_options = options
26
- @_defined = []
27
- end
28
-
29
- # @return [Vedeu::Options]
30
- def _build
31
- _options.each do |name, value|
32
- _create_method(name) { value }
33
-
34
- if value.is_a?(TrueClass) || value.is_a?(FalseClass)
35
- _create_alias("#{name}?", name)
36
- end
37
- end
38
-
39
- self
40
- end
41
-
42
- protected
43
-
44
- # @!attribute [r] _options
45
- # @return [Hash]
46
- attr_reader :_options
47
-
48
- private
49
-
50
- # @param alias_name [String|Symbol]
51
- # @param method_name [String|Symbol]
52
- # @return [void]
53
- def _create_alias(alias_name, method_name)
54
- @_defined << alias_name.to_sym
55
-
56
- define_singleton_method(alias_name, method(method_name))
57
- end
58
-
59
- # @param name [String|Symbol]
60
- # @param block [Proc]
61
- # @return [void]
62
- def _create_method(name, &block)
63
- @_defined << name.to_sym
64
-
65
- self.class.send(:define_method, name, &block)
66
- end
67
-
68
- end # Option
69
-
70
- end # Vedeu
@@ -1,122 +0,0 @@
1
- module Vedeu
2
-
3
- # Change the visibility of the given model.
4
- #
5
- # @api private
6
- class Visibility
7
-
8
- # Hide a named cursor, or without a name, the cursor of the currently
9
- # focussed interface.
10
- #
11
- # @example
12
- # Vedeu.hide_cursor(name)
13
- #
14
- # @param name [String]
15
- # @return [Vedeu::Visibility]
16
- def self.hide_cursor(name = nil)
17
- model = name ? Vedeu.cursors.by_name(name) : Vedeu.cursor
18
-
19
- new(model).hide
20
- end
21
-
22
- # Show a named cursor, or without a name, the cursor of the currently
23
- # focussed interface.
24
- #
25
- # @example
26
- # Vedeu.show_cursor(name)
27
- #
28
- # @param name [String]
29
- # @return [Vedeu::Visibility]
30
- def self.show_cursor(name = nil)
31
- model = name ? Vedeu.cursors.by_name(name) : Vedeu.cursor
32
-
33
- new(model).show
34
- end
35
-
36
- # Show the given model.
37
- #
38
- # @param model [void]
39
- # @return [void]
40
- def self.show(model)
41
- new(model).show
42
- end
43
-
44
- # Hide the given model.
45
- #
46
- # @param model [void]
47
- # @return [void]
48
- def self.hide(model)
49
- new(model).hide
50
- end
51
-
52
- # Toggle the visibility of the given model.
53
- #
54
- # @param model [void]
55
- # @return [void]
56
- def self.toggle(model)
57
- new(model).toggle
58
- end
59
-
60
- # Returns a new instance of Vedeu::Visibility.
61
- #
62
- # @param model [void]
63
- # @return [Vedeu::Visibility]
64
- def initialize(model)
65
- @model = model
66
- end
67
-
68
- # @return [void]
69
- def show
70
- if model.visible?
71
- model
72
-
73
- else
74
- model.visible = true
75
- model.store
76
-
77
- end
78
- end
79
-
80
- # @return [Symbol]
81
- def state
82
- if model.visible?
83
- :visible
84
-
85
- else
86
- :invisible
87
-
88
- end
89
- end
90
-
91
- # @return [void]
92
- def hide
93
- if model.visible?
94
- model.visible = false
95
- model.store
96
-
97
- else
98
- model
99
-
100
- end
101
- end
102
-
103
- # @return [void]
104
- def toggle
105
- if model.visible?
106
- hide
107
-
108
- else
109
- show
110
-
111
- end
112
- end
113
-
114
- protected
115
-
116
- # @!attribute [r] model
117
- # @return [void]
118
- attr_reader :model
119
-
120
- end # Visibility
121
-
122
- end # Vedeu