vedeu 0.0.3 → 0.0.4

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/Gemfile +0 -1
  4. data/Guardfile +0 -8
  5. data/README.md +33 -1
  6. data/Rakefile +0 -8
  7. data/bin/vedeu +9 -0
  8. data/lib/vedeu.rb +23 -6
  9. data/lib/vedeu/application.rb +47 -0
  10. data/lib/vedeu/interface/interface.rb +37 -0
  11. data/lib/vedeu/interface/interfaces.rb +49 -0
  12. data/lib/vedeu/output/background.rb +23 -0
  13. data/lib/vedeu/output/base.rb +49 -0
  14. data/lib/vedeu/output/colour.rb +30 -0
  15. data/lib/vedeu/output/compositor.rb +60 -0
  16. data/lib/vedeu/output/directive.rb +34 -0
  17. data/lib/vedeu/output/esc.rb +37 -0
  18. data/lib/vedeu/output/foreground.rb +23 -0
  19. data/lib/vedeu/output/position.rb +22 -0
  20. data/lib/vedeu/output/style.rb +32 -0
  21. data/lib/vedeu/output/translator.rb +62 -0
  22. data/lib/vedeu/process/command.rb +51 -0
  23. data/lib/vedeu/process/commands.rb +58 -0
  24. data/lib/vedeu/process/process.rb +31 -0
  25. data/lib/vedeu/support/terminal.rb +139 -0
  26. data/lib/vedeu/version.rb +1 -1
  27. data/test/lib/vedeu/application_test.rb +18 -0
  28. data/test/lib/vedeu/interface/interface_test.rb +76 -0
  29. data/test/lib/vedeu/interface/interfaces_test.rb +63 -0
  30. data/test/lib/vedeu/output/background_test.rb +10 -0
  31. data/test/lib/vedeu/output/base_test.rb +10 -0
  32. data/test/lib/vedeu/output/colour_test.rb +67 -0
  33. data/test/lib/vedeu/output/compositor_test.rb +106 -0
  34. data/test/lib/vedeu/output/directive_test.rb +55 -0
  35. data/test/lib/vedeu/output/esc_test.rb +71 -0
  36. data/test/lib/vedeu/output/foreground_test.rb +10 -0
  37. data/test/lib/vedeu/output/position_test.rb +33 -0
  38. data/test/lib/vedeu/output/style_test.rb +59 -0
  39. data/test/lib/vedeu/output/translator_test.rb +52 -0
  40. data/test/lib/vedeu/process/command_test.rb +54 -0
  41. data/test/lib/vedeu/process/commands_test.rb +62 -0
  42. data/test/lib/vedeu/process/process_test.rb +11 -0
  43. data/test/lib/vedeu/support/terminal_test.rb +140 -0
  44. data/test/lib/vedeu/version_test.rb +9 -0
  45. data/test/support/test_app/bin/testapp +32 -0
  46. data/test/test_helper.rb +4 -0
  47. data/vedeu.gemspec +0 -6
  48. metadata +60 -99
  49. data/.rubocop.yml +0 -2
  50. data/features/.gitkeep +0 -0
  51. data/lib/vedeu/buffer.rb +0 -106
  52. data/lib/vedeu/colour.rb +0 -98
  53. data/lib/vedeu/terminal.rb +0 -25
  54. data/test/lib/vedeu/buffer_test.rb +0 -114
  55. data/test/lib/vedeu/colour_test.rb +0 -57
  56. data/test/lib/vedeu/terminal_test.rb +0 -30
data/test/test_helper.rb CHANGED
@@ -15,6 +15,10 @@ module MiniTest
15
15
  end
16
16
  end
17
17
 
18
+ Minitest.after_run do
19
+ print [27.chr, '[', '?25h'].join # show cursor
20
+ end
21
+
18
22
  require_relative '../lib/vedeu.rb'
19
23
 
20
24
  require 'mocha/setup'
data/vedeu.gemspec CHANGED
@@ -17,19 +17,13 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_development_dependency "aruba"
21
20
  spec.add_development_dependency "bundler", "~> 1.5"
22
- spec.add_development_dependency "cucumber"
23
21
  spec.add_development_dependency "guard"
24
- spec.add_development_dependency "guard-cucumber"
25
22
  spec.add_development_dependency "guard-minitest"
26
23
  spec.add_development_dependency "minitest"
27
24
  spec.add_development_dependency "mocha"
28
25
  spec.add_development_dependency "pry"
29
26
  spec.add_development_dependency "pry-nav"
30
27
  spec.add_development_dependency "rake"
31
- spec.add_development_dependency "rubocop"
32
- spec.add_development_dependency "ruby-prof"
33
28
  spec.add_development_dependency "simplecov"
34
- spec.add_development_dependency "yard"
35
29
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vedeu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-17 00:00:00.000000000 Z
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: aruba
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: bundler
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +24,6 @@ dependencies:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
26
  version: '1.5'
41
- - !ruby/object:Gem::Dependency
42
- name: cucumber
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: guard
57
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +38,6 @@ dependencies:
66
38
  - - ">="
67
39
  - !ruby/object:Gem::Version
68
40
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: guard-cucumber
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
41
  - !ruby/object:Gem::Dependency
84
42
  name: guard-minitest
85
43
  requirement: !ruby/object:Gem::Requirement
@@ -164,34 +122,6 @@ dependencies:
164
122
  - - ">="
165
123
  - !ruby/object:Gem::Version
166
124
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: ruby-prof
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
125
  - !ruby/object:Gem::Dependency
196
126
  name: simplecov
197
127
  requirement: !ruby/object:Gem::Requirement
@@ -206,44 +136,60 @@ dependencies:
206
136
  - - ">="
207
137
  - !ruby/object:Gem::Version
208
138
  version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: yard
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
139
  description:
224
140
  email:
225
141
  - gavinlaking@gmail.com
226
- executables: []
142
+ executables:
143
+ - vedeu
227
144
  extensions: []
228
145
  extra_rdoc_files: []
229
146
  files:
230
147
  - ".gitignore"
231
- - ".rubocop.yml"
232
148
  - ".ruby-version"
233
149
  - Gemfile
234
150
  - Guardfile
235
151
  - LICENSE.txt
236
152
  - README.md
237
153
  - Rakefile
238
- - features/.gitkeep
154
+ - bin/vedeu
239
155
  - lib/vedeu.rb
240
- - lib/vedeu/buffer.rb
241
- - lib/vedeu/colour.rb
242
- - lib/vedeu/terminal.rb
156
+ - lib/vedeu/application.rb
157
+ - lib/vedeu/interface/interface.rb
158
+ - lib/vedeu/interface/interfaces.rb
159
+ - lib/vedeu/output/background.rb
160
+ - lib/vedeu/output/base.rb
161
+ - lib/vedeu/output/colour.rb
162
+ - lib/vedeu/output/compositor.rb
163
+ - lib/vedeu/output/directive.rb
164
+ - lib/vedeu/output/esc.rb
165
+ - lib/vedeu/output/foreground.rb
166
+ - lib/vedeu/output/position.rb
167
+ - lib/vedeu/output/style.rb
168
+ - lib/vedeu/output/translator.rb
169
+ - lib/vedeu/process/command.rb
170
+ - lib/vedeu/process/commands.rb
171
+ - lib/vedeu/process/process.rb
172
+ - lib/vedeu/support/terminal.rb
243
173
  - lib/vedeu/version.rb
244
- - test/lib/vedeu/buffer_test.rb
245
- - test/lib/vedeu/colour_test.rb
246
- - test/lib/vedeu/terminal_test.rb
174
+ - test/lib/vedeu/application_test.rb
175
+ - test/lib/vedeu/interface/interface_test.rb
176
+ - test/lib/vedeu/interface/interfaces_test.rb
177
+ - test/lib/vedeu/output/background_test.rb
178
+ - test/lib/vedeu/output/base_test.rb
179
+ - test/lib/vedeu/output/colour_test.rb
180
+ - test/lib/vedeu/output/compositor_test.rb
181
+ - test/lib/vedeu/output/directive_test.rb
182
+ - test/lib/vedeu/output/esc_test.rb
183
+ - test/lib/vedeu/output/foreground_test.rb
184
+ - test/lib/vedeu/output/position_test.rb
185
+ - test/lib/vedeu/output/style_test.rb
186
+ - test/lib/vedeu/output/translator_test.rb
187
+ - test/lib/vedeu/process/command_test.rb
188
+ - test/lib/vedeu/process/commands_test.rb
189
+ - test/lib/vedeu/process/process_test.rb
190
+ - test/lib/vedeu/support/terminal_test.rb
191
+ - test/lib/vedeu/version_test.rb
192
+ - test/support/test_app/bin/testapp
247
193
  - test/test_helper.rb
248
194
  - vedeu.gemspec
249
195
  homepage: http://www.gavinlaking.name/
@@ -271,9 +217,24 @@ signing_key:
271
217
  specification_version: 4
272
218
  summary: A terminal case of wonderland.
273
219
  test_files:
274
- - features/.gitkeep
275
- - test/lib/vedeu/buffer_test.rb
276
- - test/lib/vedeu/colour_test.rb
277
- - test/lib/vedeu/terminal_test.rb
220
+ - test/lib/vedeu/application_test.rb
221
+ - test/lib/vedeu/interface/interface_test.rb
222
+ - test/lib/vedeu/interface/interfaces_test.rb
223
+ - test/lib/vedeu/output/background_test.rb
224
+ - test/lib/vedeu/output/base_test.rb
225
+ - test/lib/vedeu/output/colour_test.rb
226
+ - test/lib/vedeu/output/compositor_test.rb
227
+ - test/lib/vedeu/output/directive_test.rb
228
+ - test/lib/vedeu/output/esc_test.rb
229
+ - test/lib/vedeu/output/foreground_test.rb
230
+ - test/lib/vedeu/output/position_test.rb
231
+ - test/lib/vedeu/output/style_test.rb
232
+ - test/lib/vedeu/output/translator_test.rb
233
+ - test/lib/vedeu/process/command_test.rb
234
+ - test/lib/vedeu/process/commands_test.rb
235
+ - test/lib/vedeu/process/process_test.rb
236
+ - test/lib/vedeu/support/terminal_test.rb
237
+ - test/lib/vedeu/version_test.rb
238
+ - test/support/test_app/bin/testapp
278
239
  - test/test_helper.rb
279
240
  has_rdoc:
data/.rubocop.yml DELETED
@@ -1,2 +0,0 @@
1
- Documentation:
2
- Enabled: false
data/features/.gitkeep DELETED
File without changes
data/lib/vedeu/buffer.rb DELETED
@@ -1,106 +0,0 @@
1
- module Vedeu
2
- class OutOfRangeError < StandardError; end
3
-
4
- class Buffer
5
- include Enumerable
6
-
7
- attr_accessor :buffer
8
-
9
- def initialize(options = {})
10
- @options = options
11
- @buffer = Array.new(height) { Array.new(width) { ' ' } }
12
- end
13
-
14
- def each(&block)
15
- buffer.each(&block)
16
- end
17
-
18
- def contents
19
- puts
20
- buffer.map { |y| y.map { |x| print "'#{x}'" }; puts }
21
- end
22
-
23
- def cell(y, x)
24
- raise OutOfRangeError if invalid_reference?(y, x)
25
- buffer[y][x]
26
- end
27
-
28
- def set_cell(y, x, v = '')
29
- raise OutOfRangeError if invalid_reference?(y, x) || invalid_cell?(v)
30
- buffer[y][x] = v
31
- end
32
-
33
- def set_row(y = 0, v = '')
34
- v.chars.each_with_index { |c, i| set_cell(y, i, c) }
35
- row(y)
36
- end
37
-
38
- def row(y = 0)
39
- buffer[y]
40
- end
41
- alias_method :y, :row
42
-
43
- def set_column(x = 0, v = '')
44
- v.chars.each_with_index { |c, i| set_cell(i, x, c) }
45
- column(x)
46
- end
47
-
48
- def column(x = 0)
49
- buffer.inject([]) { |a, e| a << e[x] }
50
- end
51
- alias_method :x, :column
52
-
53
- private
54
-
55
- def invalid_cell?(v)
56
- v.size != 1
57
- end
58
-
59
- def invalid_reference?(y, x)
60
- invalid_line?(y) || invalid_column?(x)
61
- end
62
-
63
- def invalid_line?(y)
64
- y < 0 || y > (height - 1)
65
- end
66
-
67
- def invalid_column?(x)
68
- x < 0 || x > (width - 1)
69
- end
70
-
71
- def width
72
- options.fetch(:width)
73
- end
74
- alias_method :columns, :width
75
-
76
- def height
77
- options.fetch(:height)
78
- end
79
- alias_method :lines, :height
80
-
81
- def options
82
- defaults.merge!(@options)
83
- end
84
-
85
- def defaults
86
- {
87
- width: 4,
88
- height: 3
89
- }
90
- end
91
- end
92
-
93
- def self.test_Vedeu__Buffer(klass = Vedeu::Buffer)
94
- buffer = klass.new(width: 5, height: 3)
95
-
96
- buffer.set_row(0, 'field')
97
- buffer.set_row(1, 'grows')
98
- buffer.set_row(2, 'maize')
99
-
100
- puts
101
-
102
- buffer.map { |y| y.map { |x| print "#{x}" }; puts }
103
-
104
- puts
105
- end
106
- end
data/lib/vedeu/colour.rb DELETED
@@ -1,98 +0,0 @@
1
- module Vedeu
2
- class Colour
3
- class << self
4
- def set(pair = [])
5
- new(pair).set
6
- end
7
- alias_method :reset, :set
8
- end
9
-
10
- def initialize(pair = [])
11
- @pair = pair
12
- end
13
-
14
- def set
15
- return reset if pair.empty?
16
-
17
- [esc, foreground_code, ';', background_code, 'm'].join
18
- end
19
-
20
- private
21
-
22
- attr_reader :pair
23
-
24
- def foreground_code
25
- foreground_codes[foreground] || foreground_codes[:default]
26
- end
27
-
28
- def background_code
29
- background_codes[background] || background_codes[:default]
30
- end
31
-
32
- def foreground_codes
33
- {
34
- black: 30,
35
- red: 31,
36
- green: 32,
37
- yellow: 33,
38
- blue: 34,
39
- magenta: 35,
40
- cyan: 36,
41
- white: 37,
42
- default: 39,
43
- }
44
- end
45
-
46
- def background_codes
47
- {
48
- black: 40,
49
- red: 41,
50
- green: 42,
51
- yellow: 43,
52
- blue: 44,
53
- magenta: 45,
54
- cyan: 46,
55
- white: 47,
56
- default: 49,
57
- }
58
- end
59
-
60
- def foreground
61
- pair[0]
62
- end
63
-
64
- def background
65
- pair[1]
66
- end
67
-
68
- def reset
69
- [esc, '0m'].join
70
- end
71
-
72
- def esc
73
- [27.chr, '['].join
74
- end
75
- end
76
-
77
- def self.test_Vedue__Colour(klass = Vedeu::Colour)
78
- codes = [
79
- :black,
80
- :red,
81
- :green,
82
- :yellow,
83
- :blue,
84
- :magenta,
85
- :cyan,
86
- :white,
87
- :default
88
- ]
89
-
90
- codes.each do |fg|
91
- codes.each do |bg|
92
- print [klass.set([fg, bg]), '*', klass.reset].join
93
- end
94
- puts
95
- end
96
- puts
97
- end
98
- end