vedeu 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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