vedeu 0.0.34 → 0.0.35

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2ea325bc6c7ebf8080510b64ab7529f2ed504b97
4
- data.tar.gz: fe17337d4699b19d701442298095df4204a56c7f
3
+ metadata.gz: 9e5bec0b5de4844a5345d59ec1da5c8ad679f8d5
4
+ data.tar.gz: 1d4e0cfa8a8d21a8ad784467a9e0597218160f6f
5
5
  SHA512:
6
- metadata.gz: b9ce3531ba1d457e6f8f4b1ef8bd0d19211636edafba1dd2e6da80deaea6ef26404649df0dcb771ec6c74741b2aef312e1b9945bbe7542bac3229dd099f09641
7
- data.tar.gz: ad41764646d32bb82b0603c53524663f2747719a4b9989aa0fa128bfeada4d2de3f87eb99b34de834e71d6d66d9e462017279357f2040c46d3aa7d68f5e22ca2
6
+ metadata.gz: 4722efaa8c4a0cdd1ce6399d55d9f2103d3b9df478e8fa317c342d519f3537ec1d14d5f5f601b152b878a8429c4ca108ec54a2f9ef489d970e096c6638f3a9ec
7
+ data.tar.gz: 7ae465c0dd6f73cfbfcc6b6b2ef956894d19490c71631237111086c817ee3f2619d9d7684c5fca6821dd929d9f789d5311c5f47cf7b4e4f0f477326b4c102f57
@@ -4,6 +4,8 @@ require_relative 'process/process'
4
4
  require_relative 'support/terminal'
5
5
 
6
6
  module Vedeu
7
+ ModeSwitch = Class.new(StandardError)
8
+
7
9
  class Application
8
10
  # :nocov:
9
11
  def self.start(options = {})
@@ -11,11 +13,13 @@ module Vedeu
11
13
  end
12
14
 
13
15
  def initialize(options = {})
14
- @options = options || {}
16
+ @options = options
15
17
  end
16
18
 
17
19
  def start
18
- Terminal.open do
20
+ Terminal.open(mode) do
21
+ Terminal.set_cursor_mode
22
+
19
23
  Output.render
20
24
 
21
25
  runner { main_sequence }
@@ -51,19 +55,26 @@ module Vedeu
51
55
  def interactive
52
56
  loop { yield }
53
57
  rescue StopIteration
58
+ rescue ModeSwitch
59
+ Terminal.mode_switch
54
60
  end
55
61
 
56
62
  def run_once
57
63
  yield
58
64
  end
59
65
 
66
+ def mode
67
+ options.fetch(:mode)
68
+ end
69
+
60
70
  def options
61
71
  defaults.merge!(@options)
62
72
  end
63
73
 
64
74
  def defaults
65
75
  {
66
- interactive: true
76
+ interactive: true,
77
+ mode: :raw
67
78
  }
68
79
  end
69
80
  # :nocov:
@@ -6,11 +6,19 @@ module Vedeu
6
6
  extend self
7
7
 
8
8
  def capture
9
- Queue.enqueue(input)
9
+ key = input
10
+
11
+ Trigger.event(:_mode_switch_) if is_escape?(key)
12
+
13
+ Queue.enqueue(key)
10
14
  end
11
15
 
12
16
  private
13
17
 
18
+ def is_escape?(key)
19
+ key.ord == 27
20
+ end
21
+
14
22
  def input
15
23
  Terminal.input
16
24
  end
@@ -1,21 +1,20 @@
1
1
  require 'json'
2
2
  require 'virtus'
3
3
 
4
- require_relative 'presentation'
5
4
  require_relative 'attributes/line_collection'
5
+ require_relative 'presentation'
6
6
  require_relative 'style'
7
7
  require_relative '../output/interface_renderer'
8
8
  require_relative '../support/coordinate'
9
- require_relative '../support/esc'
10
9
  require_relative '../support/queue'
11
10
  require_relative '../support/terminal'
12
11
 
13
12
  module Vedeu
14
13
  class Interface
14
+ include Vedeu::Queue
15
15
  include Virtus.model
16
16
  include Presentation
17
17
  include Style
18
- include Vedeu::Queue
19
18
 
20
19
  attribute :name, String
21
20
  attribute :lines, LineCollection
@@ -1,8 +1,8 @@
1
1
  require 'json'
2
2
  require 'virtus'
3
3
 
4
- require_relative 'presentation'
5
4
  require_relative 'attributes/stream_collection'
5
+ require_relative 'presentation'
6
6
  require_relative 'style'
7
7
 
8
8
  module Vedeu
@@ -1,7 +1,6 @@
1
1
  require 'virtus'
2
2
 
3
3
  require_relative 'colour'
4
- require_relative '../support/esc'
5
4
 
6
5
  module Vedeu
7
6
  module Presentation
@@ -2,7 +2,6 @@ require 'json'
2
2
  require 'virtus'
3
3
 
4
4
  require_relative 'presentation'
5
- require_relative '../support/terminal'
6
5
  require_relative 'style'
7
6
 
8
7
  module Vedeu
@@ -44,7 +44,7 @@ module Vedeu
44
44
  end
45
45
 
46
46
  def clear_line(index)
47
- origin(index) + (' ' * interface.width)
47
+ origin(index) + (' ' * interface.width) + origin(index)
48
48
  end
49
49
 
50
50
  def origin(index)
@@ -1,5 +1,3 @@
1
- require_relative '../models/line'
2
-
3
1
  module Vedeu
4
2
  class TextAdaptor
5
3
  def self.adapt(text)
@@ -1,4 +1,18 @@
1
+ require_relative '../support/terminal'
2
+
1
3
  module Vedeu
4
+ class Trigger
5
+ def self.event(event, *args)
6
+ EventRepository.trigger(event, *args)
7
+ end
8
+ end
9
+
10
+ class Register
11
+ def self.event(event, *args)
12
+ EventRepository.register(event, &block)
13
+ end
14
+ end
15
+
2
16
  module EventRepository
3
17
  extend self
4
18
 
@@ -20,7 +34,8 @@ module Vedeu
20
34
 
21
35
  def defaults
22
36
  {
23
- :_exit_ => [ proc { :exit } ],
37
+ :_exit_ => [ proc { fail StopIteration } ],
38
+ :_mode_switch_ => [ proc { fail ModeSwitch } ]
24
39
  }
25
40
  end
26
41
  end
@@ -11,12 +11,8 @@ module Vedeu
11
11
  ["\e[48;5;", colour_translator(value), 'm'].join
12
12
  end
13
13
 
14
- def clear_line
15
- "\e[2K"
16
- end
17
-
18
14
  def clear_last_line
19
- set_position((Terminal.height - 1), 1) + clear_line
15
+ set_position((Terminal.height - 1), 1) + "\e[2K"
20
16
  end
21
17
 
22
18
  def foreground_colour(value = '#ffffff')
@@ -1,7 +1,9 @@
1
+ require_relative '../repository/event_repository'
2
+
1
3
  module Vedeu
2
4
  class Exit
3
5
  def self.dispatch
4
- :stop
6
+ Trigger.event(:_exit_)
5
7
  end
6
8
  end
7
9
  end
@@ -6,23 +6,31 @@ module Vedeu
6
6
  module Terminal
7
7
  extend self
8
8
  # :nocov:
9
- def open(&block)
10
- console.cooked do
11
- output Esc.string('reset')
12
- output Esc.string('clear')
13
- output Esc.string('hide_cursor')
14
-
15
- yield
16
- end if block_given?
9
+ def open(mode, &block)
10
+ @mode = mode
11
+
12
+ if block_given?
13
+ if raw_mode?
14
+ console.raw { initialize_screen { yield } }
15
+
16
+ else
17
+ console.cooked { initialize_screen { yield } }
18
+
19
+ end
20
+ end
17
21
  ensure
18
- output Esc.string('show_cursor')
19
- output Esc.string('reset')
20
- output Esc.clear_last_line
22
+ restore_screen
21
23
  end
22
24
  # :nocov:
23
25
 
24
26
  def input
25
- console.gets.chomp
27
+ if raw_mode?
28
+ console.getc
29
+
30
+ else
31
+ console.gets.chomp
32
+
33
+ end
26
34
  end
27
35
 
28
36
  def output(stream = '')
@@ -31,6 +39,38 @@ module Vedeu
31
39
  stream
32
40
  end
33
41
 
42
+ def initialize_screen(&block)
43
+ output Esc.string 'reset'
44
+ output Esc.string 'clear'
45
+ output Esc.string 'hide_cursor'
46
+
47
+ yield
48
+ end
49
+
50
+ def restore_screen
51
+ output Esc.string 'show_cursor'
52
+ output Esc.string 'reset'
53
+ output Esc.clear_last_line
54
+ end
55
+
56
+ def set_cursor_mode
57
+ output Esc.string 'show_cursor' unless raw_mode?
58
+ end
59
+
60
+ def mode_switch
61
+ if raw_mode?
62
+ Application.start({ mode: :cooked })
63
+
64
+ else
65
+ Application.start({ mode: :raw })
66
+
67
+ end
68
+ end
69
+
70
+ def raw_mode?
71
+ @mode == :raw
72
+ end
73
+
34
74
  def centre
35
75
  [(height / 2), (width / 2)]
36
76
  end
@@ -13,18 +13,12 @@ module Example
13
13
  "name": "example",
14
14
  "lines": {
15
15
  "streams": [
16
- {
17
- "text": "Some text..."
18
- },
19
- {
20
- "text": " "
21
- },
22
16
  {
23
17
  "colour": {
24
18
  "foreground": "#00ff00",
25
19
  "background": "#0000ff"
26
20
  },
27
- "text": "The time is: #{Time.now}."
21
+ "text": "The time is: #{Time.now}. "
28
22
  }
29
23
  ]
30
24
  }
@@ -37,7 +31,11 @@ module Example
37
31
  include Vedeu
38
32
 
39
33
  def self.example_position
40
- @_position = Vedeu::Coordinate.new({ width: 40, height: 5, centered: true }).position
34
+ @_position = Vedeu::Coordinate.new({
35
+ width: 40,
36
+ height: 2,
37
+ centered: true
38
+ }).position
41
39
  end
42
40
 
43
41
  def self.command_position
@@ -47,9 +47,9 @@ module Vedeu
47
47
  attributes = JSON.load(json, nil, symbolize_names: true)
48
48
 
49
49
  Composition.new(attributes).to_s.must_equal(
50
- "\e[3;3H " \
51
- "\e[4;3H " \
52
- "\e[5;3H " \
50
+ "\e[3;3H \e[3;3H" \
51
+ "\e[4;3H \e[4;3H" \
52
+ "\e[5;3H \e[5;3H" \
53
53
  "\e[3;3HSome text..."
54
54
  )
55
55
  end
@@ -60,9 +60,9 @@ module Vedeu
60
60
  attributes = JSON.load(json, nil, symbolize_names: true)
61
61
 
62
62
  Composition.new(attributes).to_s.must_equal(
63
- "\e[3;3H " \
64
- "\e[4;3H " \
65
- "\e[5;3H " \
63
+ "\e[3;3H \e[3;3H" \
64
+ "\e[4;3H \e[4;3H" \
65
+ "\e[5;3H \e[5;3H" \
66
66
  "\e[3;3HSome text... more text..."
67
67
  )
68
68
  end
@@ -73,9 +73,9 @@ module Vedeu
73
73
  attributes = JSON.load(json, nil, symbolize_names: true)
74
74
 
75
75
  Composition.new(attributes).to_s.must_equal(
76
- "\e[3;3H " \
77
- "\e[4;3H " \
78
- "\e[5;3H " \
76
+ "\e[3;3H \e[3;3H" \
77
+ "\e[4;3H \e[4;3H" \
78
+ "\e[5;3H \e[5;3H" \
79
79
  "\e[3;3HSome text..." \
80
80
  "\e[4;3HSome text..."
81
81
  )
@@ -87,9 +87,9 @@ module Vedeu
87
87
  attributes = JSON.load(json, nil, symbolize_names: true)
88
88
 
89
89
  Composition.new(attributes).to_s.must_equal(
90
- "\e[3;3H " \
91
- "\e[4;3H " \
92
- "\e[5;3H " \
90
+ "\e[3;3H \e[3;3H" \
91
+ "\e[4;3H \e[4;3H" \
92
+ "\e[5;3H \e[5;3H" \
93
93
  "\e[3;3HSome text... more text..." \
94
94
  "\e[4;3HSome text... more text..."
95
95
  )
@@ -101,9 +101,9 @@ module Vedeu
101
101
  InterfaceRepository.create({ name: 'int1_lin2_str3_styles', y: 3, x: 3, width: 10, height: 3 })
102
102
 
103
103
  Composition.new(attributes).to_s.must_equal(
104
- "\e[3;3H " \
105
- "\e[4;3H " \
106
- "\e[5;3H " \
104
+ "\e[3;3H \e[3;3H" \
105
+ "\e[4;3H \e[4;3H" \
106
+ "\e[5;3H \e[5;3H" \
107
107
  "\e[3;3H\e[38;5;16m\e[48;5;21m\e[24m\e[21m\e[27m\e[4mSome text...\e[38;5;226m\e[48;5;46m\e[24m\e[21m\e[27m \e[38;5;231m\e[48;5;201m\e[1mmore text..."
108
108
  )
109
109
  end
@@ -115,13 +115,13 @@ module Vedeu
115
115
  attributes = JSON.load(json, nil, symbolize_names: true)
116
116
 
117
117
  Composition.new(attributes).to_s.must_equal(
118
- "\e[3;3H " \
119
- "\e[4;3H " \
120
- "\e[5;3H " \
118
+ "\e[3;3H \e[3;3H" \
119
+ "\e[4;3H \e[4;3H" \
120
+ "\e[5;3H \e[5;3H" \
121
121
  "\e[3;3HSome text..." \
122
- "\e[6;6H " \
123
- "\e[7;6H " \
124
- "\e[8;6H " \
122
+ "\e[6;6H \e[6;6H" \
123
+ "\e[7;6H \e[7;6H" \
124
+ "\e[8;6H \e[8;6H" \
125
125
  "\e[6;6HSome text..."
126
126
  )
127
127
  end
@@ -133,13 +133,13 @@ module Vedeu
133
133
  attributes = JSON.load(json, nil, symbolize_names: true)
134
134
 
135
135
  Composition.new(attributes).to_s.must_equal(
136
- "\e[3;3H " \
137
- "\e[4;3H " \
138
- "\e[5;3H " \
136
+ "\e[3;3H \e[3;3H" \
137
+ "\e[4;3H \e[4;3H" \
138
+ "\e[5;3H \e[5;3H" \
139
139
  "\e[3;3HSome text... more text..." \
140
- "\e[6;6H " \
141
- "\e[7;6H " \
142
- "\e[8;6H " \
140
+ "\e[6;6H \e[6;6H" \
141
+ "\e[7;6H \e[7;6H" \
142
+ "\e[8;6H \e[8;6H" \
143
143
  "\e[6;6HSome text... more text..."
144
144
  )
145
145
  end
@@ -151,14 +151,14 @@ module Vedeu
151
151
  attributes = JSON.load(json, nil, symbolize_names: true)
152
152
 
153
153
  Composition.new(attributes).to_s.must_equal(
154
- "\e[3;3H " \
155
- "\e[4;3H " \
156
- "\e[5;3H " \
154
+ "\e[3;3H \e[3;3H" \
155
+ "\e[4;3H \e[4;3H" \
156
+ "\e[5;3H \e[5;3H" \
157
157
  "\e[3;3HSome text..." \
158
158
  "\e[4;3HSome text..." \
159
- "\e[3;3H " \
160
- "\e[4;3H " \
161
- "\e[5;3H " \
159
+ "\e[3;3H \e[3;3H" \
160
+ "\e[4;3H \e[4;3H" \
161
+ "\e[5;3H \e[5;3H" \
162
162
  "\e[3;3HSome text..." \
163
163
  "\e[4;3HSome text..."
164
164
  )
@@ -171,14 +171,14 @@ module Vedeu
171
171
  attributes = JSON.load(json, nil, symbolize_names: true)
172
172
 
173
173
  Composition.new(attributes).to_s.must_equal(
174
- "\e[3;3H " \
175
- "\e[4;3H " \
176
- "\e[5;3H " \
174
+ "\e[3;3H \e[3;3H" \
175
+ "\e[4;3H \e[4;3H" \
176
+ "\e[5;3H \e[5;3H" \
177
177
  "\e[3;3HSome text... more text..." \
178
178
  "\e[4;3HSome text... more text..." \
179
- "\e[6;6H " \
180
- "\e[7;6H " \
181
- "\e[8;6H " \
179
+ "\e[6;6H \e[6;6H" \
180
+ "\e[7;6H \e[7;6H" \
181
+ "\e[8;6H \e[8;6H" \
182
182
  "\e[6;6HSome text... more text..." \
183
183
  "\e[7;6HSome text... more text..."
184
184
  )
@@ -191,14 +191,14 @@ module Vedeu
191
191
  attributes = JSON.load(json, nil, symbolize_names: true)
192
192
 
193
193
  Composition.new(attributes).to_s.must_equal(
194
- "\e[3;3H " \
195
- "\e[4;3H " \
196
- "\e[5;3H " \
194
+ "\e[3;3H \e[3;3H" \
195
+ "\e[4;3H \e[4;3H" \
196
+ "\e[5;3H \e[5;3H" \
197
197
  "\e[3;3H\e[38;5;16m\e[48;5;21m\e[24m\e[21m\e[27m\e[4mSome text...\e[38;5;226m\e[48;5;46m\e[24m\e[21m\e[27m \e[38;5;231m\e[48;5;201m\e[1mmore text..." \
198
198
  "\e[4;3H\e[38;5;16m\e[48;5;21m\e[24m\e[21m\e[27m\e[4mSome text...\e[38;5;226m\e[48;5;46m\e[24m\e[21m\e[27m \e[38;5;231m\e[48;5;201m\e[1mmore text..." \
199
- "\e[6;6H " \
200
- "\e[7;6H " \
201
- "\e[8;6H " \
199
+ "\e[6;6H \e[6;6H" \
200
+ "\e[7;6H \e[7;6H" \
201
+ "\e[8;6H \e[8;6H" \
202
202
  "\e[6;6H\e[38;5;16m\e[48;5;21m\e[24m\e[21m\e[27m\e[4mSome text...\e[38;5;226m\e[48;5;46m\e[24m\e[21m\e[27m \e[38;5;231m\e[48;5;201m\e[1mmore text..." \
203
203
  "\e[7;6H\e[38;5;16m\e[48;5;21m\e[24m\e[21m\e[27m\e[4mSome text...\e[38;5;226m\e[48;5;46m\e[24m\e[21m\e[27m \e[38;5;231m\e[48;5;201m\e[1mmore text..."
204
204
  )
@@ -103,9 +103,9 @@ module Vedeu
103
103
  it 'returns a blank interface when there is no content to display (initial state)' do
104
104
  Interface.new(attributes).refresh.must_equal(
105
105
  "\e[38;5;196m\e[48;5;16m" \
106
- "\e[1;1H " \
107
- "\e[2;1H " \
108
- "\e[3;1H "
106
+ "\e[1;1H \e[1;1H" \
107
+ "\e[2;1H \e[2;1H" \
108
+ "\e[3;1H \e[3;1H"
109
109
  )
110
110
  end
111
111
 
@@ -129,9 +129,9 @@ module Vedeu
129
129
 
130
130
  interface.refresh.must_equal(
131
131
  "\e[38;5;196m\e[48;5;16m" \
132
- "\e[1;1H " \
133
- "\e[2;1H " \
134
- "\e[3;1H " \
132
+ "\e[1;1H \e[1;1H" \
133
+ "\e[2;1H \e[2;1H" \
134
+ "\e[3;1H \e[3;1H" \
135
135
  "\e[1;1H#refresh" \
136
136
  "\e[2;1H#refresh" \
137
137
  "\e[3;1H#refresh"
@@ -151,18 +151,18 @@ module Vedeu
151
151
  }
152
152
  interface = Interface.new(attributes)
153
153
  interface.current = "\e[38;5;196m\e[48;5;16m" \
154
- "\e[1;1H " \
155
- "\e[2;1H " \
156
- "\e[3;1H " \
154
+ "\e[1;1H \e[1;1H" \
155
+ "\e[2;1H \e[2;1H" \
156
+ "\e[3;1H \e[3;1H" \
157
157
  "\e[1;1H#refresh" \
158
158
  "\e[2;1H#refresh" \
159
159
  "\e[3;1H#refresh"
160
160
 
161
161
  interface.refresh.must_equal(
162
162
  "\e[38;5;196m\e[48;5;16m" \
163
- "\e[1;1H " \
164
- "\e[2;1H " \
165
- "\e[3;1H " \
163
+ "\e[1;1H \e[1;1H" \
164
+ "\e[2;1H \e[2;1H" \
165
+ "\e[3;1H \e[3;1H" \
166
166
  "\e[1;1H#refresh" \
167
167
  "\e[2;1H#refresh" \
168
168
  "\e[3;1H#refresh"
@@ -183,9 +183,9 @@ module Vedeu
183
183
  height: 3
184
184
  }).to_s.must_equal(
185
185
  "\e[38;5;196m\e[48;5;16m" \
186
- "\e[1;1H " \
187
- "\e[2;1H " \
188
- "\e[3;1H "
186
+ "\e[1;1H \e[1;1H" \
187
+ "\e[2;1H \e[2;1H" \
188
+ "\e[3;1H \e[3;1H"
189
189
  )
190
190
  end
191
191
  end
@@ -15,8 +15,8 @@ module Vedeu
15
15
  height: 2
16
16
  })
17
17
  InterfaceRenderer.clear(interface).must_equal(
18
- "\e[1;1H " \
19
- "\e[2;1H "
18
+ "\e[1;1H \e[1;1H" \
19
+ "\e[2;1H \e[2;1H"
20
20
  )
21
21
  end
22
22
 
@@ -32,8 +32,8 @@ module Vedeu
32
32
  })
33
33
  InterfaceRenderer.clear(interface).must_equal(
34
34
  "\e[38;5;46m\e[48;5;226m" \
35
- "\e[1;1H " \
36
- "\e[2;1H "
35
+ "\e[1;1H \e[1;1H" \
36
+ "\e[2;1H \e[2;1H"
37
37
  )
38
38
  end
39
39
  end
@@ -74,9 +74,9 @@ module Vedeu
74
74
  }).enqueue
75
75
 
76
76
  InterfaceRepository.refresh.must_equal([
77
- "\e[1;1H \e[1;1Hbeta",
78
- "\e[1;1H \e[1;1Hgamma",
79
- "\e[1;1H \e[1;1Halpha"
77
+ "\e[1;1H \e[1;1H\e[1;1Hbeta",
78
+ "\e[1;1H \e[1;1H\e[1;1Hgamma",
79
+ "\e[1;1H \e[1;1H\e[1;1Halpha"
80
80
  ])
81
81
  end
82
82
  end
@@ -13,12 +13,6 @@ module Vedeu
13
13
  end
14
14
  end
15
15
 
16
- describe '.clear_line' do
17
- it 'returns an escape sequence' do
18
- Esc.clear_line.must_equal("\e[2K")
19
- end
20
- end
21
-
22
16
  describe '.clear_last_line' do
23
17
  it 'returns an escape sequence to clear the last line' do
24
18
  IO.console.stub :winsize, [25, 25] do
@@ -19,8 +19,8 @@ module Vedeu
19
19
  describe '#trigger' do
20
20
  it 'returns a collection containing the event when the event is pre-registered' do
21
21
  EventRepository.register(:some_event) { proc { |x| x } }
22
- EventRepository.trigger(:_exit_, []).first.call
23
- .must_equal(:exit)
22
+ proc { EventRepository.trigger(:_exit_, []).first.call }
23
+ .must_raise(StopIteration)
24
24
  end
25
25
 
26
26
  it 'returns an empty collection when the event has not been registered' do
@@ -4,8 +4,8 @@ require_relative '../../../../lib/vedeu/support/exit'
4
4
  module Vedeu
5
5
  describe Exit do
6
6
  describe '.dispatch' do
7
- it 'returns the symbol :stop' do
8
- Exit.dispatch.must_equal(:stop)
7
+ it 'halts execution' do
8
+ proc { Exit.dispatch }.must_raise(StopIteration)
9
9
  end
10
10
  end
11
11
  end
data/vedeu.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'vedeu'
7
- spec.version = '0.0.34'
7
+ spec.version = '0.0.35'
8
8
  spec.authors = ['Gavin Laking']
9
9
  spec.email = ['gavinlaking@gmail.com']
10
10
  spec.summary = %q{A terminal case of wonderland.}
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.0.34
4
+ version: 0.0.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking