vedeu 0.4.44 → 0.4.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/README.md +3 -2
  4. data/Rakefile +0 -6
  5. data/docs/api.md +56 -53
  6. data/docs/applications.md +1 -1
  7. data/docs/dsl.md +2 -0
  8. data/docs/getting_started.md +1 -1
  9. data/docs/object_graph.md +1 -1
  10. data/docs/views.md +1 -1
  11. data/lib/vedeu.rb +4 -0
  12. data/lib/vedeu/api.rb +75 -13
  13. data/lib/vedeu/application/application_view.rb +3 -0
  14. data/lib/vedeu/application/controller.rb +13 -0
  15. data/lib/vedeu/bootstrap.rb +11 -0
  16. data/lib/vedeu/buffers/buffer.rb +2 -0
  17. data/lib/vedeu/configuration/api.rb +1 -15
  18. data/lib/vedeu/configuration/configuration.rb +1 -0
  19. data/lib/vedeu/cursor/cursor.rb +2 -0
  20. data/lib/vedeu/geometry/dimension.rb +2 -0
  21. data/lib/vedeu/geometry/geometry.rb +4 -0
  22. data/lib/vedeu/input/keymap.rb +2 -0
  23. data/lib/vedeu/launcher.rb +14 -0
  24. data/lib/vedeu/main_loop.rb +2 -0
  25. data/lib/vedeu/models/cell.rb +2 -0
  26. data/lib/vedeu/models/char.rb +2 -0
  27. data/lib/vedeu/models/escape_char.rb +2 -0
  28. data/lib/vedeu/models/group.rb +2 -0
  29. data/lib/vedeu/output/clear.rb +2 -0
  30. data/lib/vedeu/output/esc.rb +8 -16
  31. data/lib/vedeu/output/render_border.rb +43 -19
  32. data/lib/vedeu/output/renderers/file.rb +2 -0
  33. data/lib/vedeu/output/wordwrap.rb +2 -0
  34. data/lib/vedeu/repositories/repositories/backgrounds.rb +1 -3
  35. data/lib/vedeu/repositories/repositories/borders.rb +0 -4
  36. data/lib/vedeu/repositories/repositories/buffers.rb +0 -4
  37. data/lib/vedeu/repositories/repositories/cursors.rb +1 -7
  38. data/lib/vedeu/repositories/repositories/events.rb +0 -4
  39. data/lib/vedeu/repositories/repositories/foregrounds.rb +1 -3
  40. data/lib/vedeu/repositories/repositories/geometries.rb +0 -4
  41. data/lib/vedeu/repositories/repositories/groups.rb +0 -4
  42. data/lib/vedeu/repositories/repositories/interfaces.rb +0 -4
  43. data/lib/vedeu/repositories/repositories/keymaps.rb +0 -4
  44. data/lib/vedeu/repositories/repositories/menus.rb +0 -4
  45. data/lib/vedeu/repositories/repository.rb +6 -0
  46. data/lib/vedeu/templating/directive.rb +3 -0
  47. data/lib/vedeu/traps.rb +2 -0
  48. data/lib/vedeu/version.rb +1 -1
  49. data/test/lib/vedeu/cli/generator/helpers_test.rb +33 -1
  50. data/test/lib/vedeu/distributed/client_test.rb +10 -0
  51. data/test/lib/vedeu/output/text_test.rb +18 -12
  52. data/test/lib/vedeu/repositories/repository_test.rb +11 -2
  53. data/test/support/helpers/model_test_class.rb +2 -0
  54. data/test/test_helper.rb +7 -2
  55. data/vedeu.gemspec +2 -3
  56. metadata +5 -21
  57. data/inch.yml +0 -5
  58. data/logs/.gitkeep +0 -0
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.buffers
12
- #
13
- # @return [Vedeu::Buffers]
14
10
  alias_method :buffers, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -7,16 +7,10 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.cursors
12
- #
13
- # @return [Vedeu::Cursors]
14
10
  alias_method :cursors, :repository
15
11
 
16
- # @example
17
- # Vedeu.cursor
18
- #
19
12
  # @return [Vedeu::Cursor]
13
+ # @see Vedeu::API.cursor
20
14
  def cursor
21
15
  cursors.by_name(Vedeu.focus) if Vedeu.focus
22
16
  end
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.events
12
- #
13
- # @return [Vedeu::Events]
14
10
  alias_method :events, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -5,10 +5,8 @@ module Vedeu
5
5
  # @api public
6
6
  class Foregrounds < Colours
7
7
 
8
- # @example
9
- # Vedeu.foreground_colours
10
- #
11
8
  # @return [Vedeu::Foregrounds]
9
+ # @see Vedeu::Repository
12
10
  def self.foreground_colours
13
11
  @foreground_colours ||= new
14
12
  end
@@ -8,10 +8,6 @@ module Vedeu
8
8
 
9
9
  class << self
10
10
 
11
- # @example
12
- # Vedeu.geometries
13
- #
14
- # @return [Vedeu::Geometries]
15
11
  alias_method :geometries, :repository
16
12
 
17
13
  # Remove all stored models from the repository.
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.groups
12
- #
13
- # @return [Vedeu::Groups]
14
10
  alias_method :groups, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.interfaces
12
- #
13
- # @return [Vedeu::Interfaces]
14
10
  alias_method :interfaces, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.keymaps
12
- #
13
- # @return [Vedeu::Keymaps]
14
10
  alias_method :keymaps, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -7,10 +7,6 @@ module Vedeu
7
7
 
8
8
  class << self
9
9
 
10
- # @example
11
- # Vedeu.menus
12
- #
13
- # @return [Vedeu::Menus]
14
10
  alias_method :menus, :repository
15
11
 
16
12
  # Remove all stored models from the repository.
@@ -41,6 +41,8 @@ module Vedeu
41
41
  self.class
42
42
  end
43
43
 
44
+ # Return all the registered models.
45
+ #
44
46
  # @return [Array<void>] An array containing each stored model.
45
47
  def all
46
48
  return storage.values if storage.is_a?(Hash)
@@ -48,6 +50,8 @@ module Vedeu
48
50
  registered
49
51
  end
50
52
 
53
+ # Return the named model or a null object if not registered.
54
+ #
51
55
  # @param name [String] The name of the stored model.
52
56
  # @return [void]
53
57
  def by_name(name)
@@ -101,6 +105,8 @@ module Vedeu
101
105
  end
102
106
  end
103
107
 
108
+ # Override Ruby's Object#inspect method to provide a more helpful output.
109
+ #
104
110
  # @return [String]
105
111
  def inspect
106
112
  "<#{self.class.name}: #{registered.inspect}>"
@@ -23,6 +23,9 @@ module Vedeu
23
23
  @code = code
24
24
  end
25
25
 
26
+ # Evaluate the code/text in the template; converting any recognised
27
+ # directives as they are encountered.
28
+ #
26
29
  # @return [Vedeu::Stream]
27
30
  def process
28
31
  eval(code, proc {}.binding)
data/lib/vedeu/traps.rb CHANGED
@@ -5,6 +5,7 @@ module Vedeu
5
5
  # @api private
6
6
  module Traps
7
7
 
8
+ # :nocov:
8
9
  Signal.trap('INT') do
9
10
  puts
10
11
  exit(1)
@@ -20,6 +21,7 @@ module Vedeu
20
21
  Signal.trap('USR2') {}
21
22
 
22
23
  Signal.trap('SIGWINCH') { Vedeu.trigger(:_resize_) }
24
+ # :nocov:
23
25
 
24
26
  end # Traps
25
27
 
data/lib/vedeu/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Vedeu
2
2
 
3
3
  # The current version of Vedeu.
4
- VERSION = '0.4.44'
4
+ VERSION = '0.4.45'
5
5
 
6
6
  end
@@ -21,35 +21,62 @@ module Vedeu
21
21
  let(:_name) { 'my_first_app' }
22
22
 
23
23
  describe '#app_name' do
24
+ before { File.stubs(:read).returns('MyFirstApp') }
25
+
24
26
  subject { instance.app_name }
25
27
 
26
- # it { subject.must_equal('MyFirstApp') }
28
+ it { subject.must_equal('MyFirstApp') }
27
29
  end
28
30
 
29
31
  describe '#make_directory' do
30
32
  let(:destination) {}
31
33
 
34
+ before { Vedeu.stubs(:log_stdout) }
35
+
32
36
  subject { instance.make_directory(destination) }
37
+
38
+ it {
39
+ FileUtils.expects(:mkdir_p).with(destination)
40
+ subject
41
+ }
33
42
  end
34
43
 
35
44
  describe '#copy_file' do
36
45
  let(:source) {}
37
46
  let(:destination) {}
38
47
 
48
+ before { Vedeu.stubs(:log_stdout) }
49
+
39
50
  subject { instance.copy_file(source, destination) }
51
+
52
+ it {
53
+ FileUtils.expects(:cp).with(source, destination)
54
+ subject
55
+ }
40
56
  end
41
57
 
42
58
  describe '#make_file' do
43
59
  let(:source) {}
44
60
  let(:destination) {}
45
61
 
62
+ before { Vedeu.stubs(:log_stdout) }
63
+
46
64
  subject { instance.make_file(source, destination) }
65
+
66
+ # it { skip }
47
67
  end
48
68
 
49
69
  describe '#touch_file' do
50
70
  let(:destination) {}
51
71
 
72
+ before { Vedeu.stubs(:log_stdout) }
73
+
52
74
  subject { instance.touch_file(destination) }
75
+
76
+ it {
77
+ FileUtils.expects(:touch).with(destination)
78
+ subject
79
+ }
53
80
  end
54
81
 
55
82
  describe '#name' do
@@ -104,6 +131,11 @@ module Vedeu
104
131
  let(:source) {}
105
132
 
106
133
  subject { instance.parse(source) }
134
+
135
+ it {
136
+ Vedeu::Template.expects(:parse).with(instance, source)
137
+ subject
138
+ }
107
139
  end
108
140
 
109
141
  describe '#source' do
@@ -84,6 +84,16 @@ module Vedeu
84
84
  end
85
85
 
86
86
  context 'when the DRb server is available' do
87
+ # before do
88
+ # DRbObject.stubs(:new_with_uri).returns(server)
89
+ # Process.stubs(:kill)
90
+ # end
91
+
92
+ # it {
93
+ # Process.expects(:kill).with('KILL', 0)
94
+ # subject
95
+ # }
96
+
87
97
  # it { skip }
88
98
  end
89
99
  end
@@ -8,18 +8,22 @@ module Vedeu
8
8
  let(:_value) { 'Testing the Text class with various options' }
9
9
  let(:options) {
10
10
  {
11
- anchor: anchor,
12
- colour: colour,
13
- model: model,
14
- pad: pad,
15
- width: width,
11
+ anchor: anchor,
12
+ background: background,
13
+ colour: colour,
14
+ foreground: foreground,
15
+ model: model,
16
+ pad: pad,
17
+ width: width,
16
18
  }
17
19
  }
18
- let(:anchor) { :left }
19
- let(:colour) { nil }
20
- let(:model) { nil }
21
- let(:pad) { ' ' }
22
- let(:width) { nil }
20
+ let(:anchor) { :left }
21
+ let(:background) { nil }
22
+ let(:colour) { nil }
23
+ let(:foreground) { nil }
24
+ let(:model) { nil }
25
+ let(:pad) { ' ' }
26
+ let(:width) { nil }
23
27
 
24
28
  describe '.with' do
25
29
  subject { described.with(_value, options) }
@@ -127,14 +131,16 @@ module Vedeu
127
131
  end
128
132
 
129
133
  context 'when the colour option is given' do
130
- let(:colour) {}
134
+ let(:colour) { { background: '#33ff33', foreground: '#ffaa00' } }
135
+
136
+ # it { skip }
131
137
  end
132
138
 
133
139
  context 'when the background and/or foreground options are given' do
134
140
  let(:background) { '#111111' }
135
141
  let(:foreground) { '#aadd00' }
136
142
 
137
-
143
+ # it { skip }
138
144
  end
139
145
 
140
146
  end
@@ -97,8 +97,17 @@ module Vedeu
97
97
  describe '#current' do
98
98
  subject { instance.current }
99
99
 
100
- # it { skip }
101
- # it { subject.must_equal('') }
100
+ context 'when there is nothing in focus' do
101
+ before { Vedeu.stubs(:focus) }
102
+
103
+ it { subject.must_be_instance_of(NilClass) }
104
+ end
105
+
106
+ context 'when there something in focus' do
107
+ before { Vedeu.stubs(:focus).returns('zinc') }
108
+
109
+ it { subject.must_be_instance_of(Vedeu::TestModel) }
110
+ end
102
111
  end
103
112
 
104
113
  describe '#find' do
@@ -40,6 +40,8 @@ module Vedeu
40
40
 
41
41
  private
42
42
 
43
+ # Returns the default options/attributes for this class.
44
+ #
43
45
  def defaults
44
46
  {
45
47
  colour: {},
data/test/test_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'simplecov'
2
- require 'simplecov-console'
2
+ require 'simplecov-console' if ENV['CONSOLE_COVERAGE']
3
3
  require 'pry'
4
4
  require 'minitest/autorun'
5
5
  require 'minitest/pride' unless ENV['NO_COLOR']
@@ -8,10 +8,13 @@ require 'minitest/hell'
8
8
  # GC.disable # uncomment to remove ~20ms from test run speed
9
9
 
10
10
  SimpleCov.start do
11
- formatter SimpleCov::Formatter::Console
11
+ formatter SimpleCov::Formatter::Console if ENV['CONSOLE_COVERAGE']
12
12
  command_name 'MiniTest::Spec'
13
13
  add_filter '/test/'
14
+ add_group 'application', 'vedeu/application'
15
+ add_group 'bindings', 'vedeu/bindings'
14
16
  add_group 'buffers', 'vedeu/buffers'
17
+ add_group 'cli', 'vedeu/cli'
15
18
  add_group 'configuration', 'vedeu/configuration'
16
19
  add_group 'cursor', 'vedeu/cursor'
17
20
  add_group 'distributed', 'vedeu/distributed'
@@ -20,10 +23,12 @@ SimpleCov.start do
20
23
  add_group 'geometry', 'vedeu/geometry'
21
24
  add_group 'input', 'vedeu/input'
22
25
  add_group 'models', 'vedeu/models'
26
+ add_group 'null', 'vedeu/null'
23
27
  add_group 'output', 'vedeu/output'
24
28
  add_group 'repositories', 'vedeu/repositories'
25
29
  add_group 'storage', 'vedeu/storage'
26
30
  add_group 'support', 'vedeu/support'
31
+ add_group 'templating', 'vedeu/templating'
27
32
  end unless ENV['no_simplecov']
28
33
 
29
34
  module VedeuMiniTestPlugin
data/vedeu.gemspec CHANGED
@@ -20,12 +20,11 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_development_dependency 'guard', '2.12.7'
23
+ spec.add_development_dependency 'guard', '2.12.8'
24
24
  spec.add_development_dependency 'guard-bundler', '2.1.0'
25
25
  spec.add_development_dependency 'guard-minitest', '2.4.4'
26
- spec.add_development_dependency 'inch', '0.6.3'
27
26
  spec.add_development_dependency 'minitest', '5.7.0'
28
- spec.add_development_dependency 'minitest-reporters', '1.0.17'
27
+ spec.add_development_dependency 'minitest-reporters', '1.0.18'
29
28
  spec.add_development_dependency 'mocha', '1.1.0'
30
29
  spec.add_development_dependency 'pry', '0.10.1'
31
30
  spec.add_development_dependency 'pry-byebug', '3.1.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vedeu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.44
4
+ version: 0.4.45
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.12.7
19
+ version: 2.12.8
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.12.7
26
+ version: 2.12.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: guard-bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.4.4
55
- - !ruby/object:Gem::Dependency
56
- name: inch
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 0.6.3
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 0.6.3
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: minitest
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +72,14 @@ dependencies:
86
72
  requirements:
87
73
  - - '='
88
74
  - !ruby/object:Gem::Version
89
- version: 1.0.17
75
+ version: 1.0.18
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - '='
95
81
  - !ruby/object:Gem::Version
96
- version: 1.0.17
82
+ version: 1.0.18
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: mocha
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -300,7 +286,6 @@ files:
300
286
  - examples/view_templates_app/prune.erb
301
287
  - examples/view_templates_app/view_templates_app.rb
302
288
  - examples/view_templates_app/wrap.erb
303
- - inch.yml
304
289
  - lib/vedeu.rb
305
290
  - lib/vedeu/all.rb
306
291
  - lib/vedeu/api.rb
@@ -492,7 +477,6 @@ files:
492
477
  - lib/vedeu/templating/preprocessor.rb
493
478
  - lib/vedeu/traps.rb
494
479
  - lib/vedeu/version.rb
495
- - logs/.gitkeep
496
480
  - test/lib/vedeu/api_test.rb
497
481
  - test/lib/vedeu/application/application_controller_test.rb
498
482
  - test/lib/vedeu/application/application_helper_test.rb