vedeu 0.0.42 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a046f5b44b63444927dcb96378474808444b2be
4
- data.tar.gz: 70e1e365e7727b181d8fbcc813b7843cfc4ce9d3
3
+ metadata.gz: 73472624cf09a62012366cd4ef77b96c0a731695
4
+ data.tar.gz: 2efb14924dbf27185fd43c3083cbd35083e150cb
5
5
  SHA512:
6
- metadata.gz: 5265ac3784c962e2405ed0295f66b3b54929272a48745b713c6c8415ecd30763ef29c125f4799ffd84db8063a4d4140dc44e886278ddcc7ad9554e4d9193213f
7
- data.tar.gz: 8e6a2a56e74dec0fb18f65a3676047a25266be8a7f7302b1bd87df7b8cfbfc72537ca6e88233627985537c20a01db16abb986942f5e89f74d5c72de898bc2ae8
6
+ metadata.gz: 738f10f4ec7ffd205ba5efa8b0656ee588fa9464d174350ce37b799549754ead12e874fe6c867d7c04030351afccfb31d68b2f3ad5653c87a5234f73c522a722
7
+ data.tar.gz: a34a0a4c74a12524101306bebe57d3e30619eb5e846f19ba3f614a4a058befacca8e9d892e3435d42ac881cd26a1bca329d852179c5b1d672197851f826b27fd
data/README.md CHANGED
@@ -16,6 +16,12 @@ And then execute:
16
16
 
17
17
  $ bundle
18
18
 
19
+
20
+ ## Example
21
+
22
+ Have a look at: https://github.com/gavinlaking/playa
23
+
24
+
19
25
  ## Usage
20
26
 
21
27
  Expect proper documentation soon!
@@ -13,8 +13,10 @@ module Vedeu
13
13
  def render
14
14
  out = [ClearInterface.call(interface)]
15
15
  processed_lines.each_with_index do |line, index|
16
- out << interface.origin(index)
17
- out << line.to_s
16
+ if index + 1 <= height
17
+ out << interface.origin(index)
18
+ out << line.to_s
19
+ end
18
20
  end
19
21
  out.join
20
22
  end
@@ -24,7 +26,7 @@ module Vedeu
24
26
  attr_reader :interface
25
27
 
26
28
  def processed_lines
27
- lines.each do |line|
29
+ lines.each_with_index do |line|
28
30
  if line.streams.any?
29
31
  processed_streams = []
30
32
  line_length = 0
@@ -33,7 +35,7 @@ module Vedeu
33
35
 
34
36
  if (line_length += stream.text.size) >= width
35
37
  remainder = width - line_length
36
- stream.text = truncate(stream.text, (remainder - 3))
38
+ stream.text = truncate(stream.text, remainder)
37
39
  end
38
40
 
39
41
  processed_streams << stream
@@ -52,6 +54,10 @@ module Vedeu
52
54
  interface.lines
53
55
  end
54
56
 
57
+ def height
58
+ interface.height
59
+ end
60
+
55
61
  def width
56
62
  interface.width
57
63
  end
@@ -22,7 +22,6 @@ module Vedeu
22
22
  on(:menu_selected) { selected_item }
23
23
  on(:menu_current) { current_item }
24
24
  on(:menu_items) { items }
25
- on(:menu_render) { render }
26
25
  end
27
26
  end
28
27
 
@@ -64,24 +63,8 @@ module Vedeu
64
63
  items
65
64
  end
66
65
 
67
- def render
68
- lines = []
69
- items.each do |(sel, cur, item)|
70
- if sel && cur
71
- lines << "*> #{item}"
72
-
73
- elsif cur
74
- lines << " > #{item}"
75
-
76
- elsif sel
77
- lines << "* #{item}"
78
-
79
- else
80
- lines << " #{item}"
81
-
82
- end
83
- end
84
- lines
66
+ def view
67
+ items[@current, @collection.size]
85
68
  end
86
69
 
87
70
  def top_item
@@ -25,6 +25,8 @@ module Vedeu
25
25
  { text: 'it is even longer ' },
26
26
  { text: 'and still truncated' }
27
27
  ]
28
+ }, {
29
+ streams: [{ text: 'this should not render' }]
28
30
  }
29
31
  ]
30
32
  })
@@ -33,8 +35,8 @@ module Vedeu
33
35
  "\e[2;1H \e[2;1H" \
34
36
  "\e[3;1H \e[3;1H" \
35
37
  "\e[1;1Hthis is the first" \
36
- "\e[2;1Hthis is the second and it is " \
37
- "\e[3;1Hthis is the third, it is even"
38
+ "\e[2;1Hthis is the second and it is lon" \
39
+ "\e[3;1Hthis is the third, it is even lo"
38
40
  )
39
41
  end
40
42
  end
@@ -55,7 +55,7 @@ module Vedeu
55
55
  end
56
56
 
57
57
  describe '#items' do
58
- it 'returns a tuple' do
58
+ it 'returns a collection of items' do
59
59
  menu.items.must_equal(
60
60
  [
61
61
  [false, true, 'hydrogen'],
@@ -66,7 +66,8 @@ module Vedeu
66
66
  )
67
67
  end
68
68
 
69
- it 'returns a tuple when the current has changed' do
69
+ it 'returns a collection of items when the current has ' \
70
+ 'changed' do
70
71
  menu.next_item
71
72
  menu.items.must_equal(
72
73
  [
@@ -78,7 +79,7 @@ module Vedeu
78
79
  )
79
80
  end
80
81
 
81
- it 'returns a tuple when an item is selected' do
82
+ it 'returns a collection of items when an item is selected' do
82
83
  menu.next_item
83
84
  menu.select_item
84
85
  menu.items.must_equal(
@@ -91,8 +92,8 @@ module Vedeu
91
92
  )
92
93
  end
93
94
 
94
- it 'returns a tuple when the current has changed and an item ' \
95
- 'is selected' do
95
+ it 'returns a collection of items when the current has ' \
96
+ 'changed and an item is selected' do
96
97
  menu.next_item
97
98
  menu.select_item
98
99
  menu.next_item
@@ -108,55 +109,16 @@ module Vedeu
108
109
  end
109
110
  end
110
111
 
111
- describe '#render' do
112
- it 'returns a tuple' do
113
- menu.render.must_equal(
114
- [
115
- ' > hydrogen',
116
- ' carbon',
117
- ' nitrogen',
118
- ' oxygen'
119
- ]
120
- )
121
- end
122
-
123
- it 'returns a tuple when the current has changed' do
124
- menu.next_item
125
- menu.render.must_equal(
126
- [
127
- ' hydrogen',
128
- ' > carbon',
129
- ' nitrogen',
130
- ' oxygen'
131
- ]
132
- )
133
- end
134
-
135
- it 'returns a tuple when an item is selected' do
136
- menu.next_item
137
- menu.select_item
138
- menu.render.must_equal(
139
- [
140
- ' hydrogen',
141
- '*> carbon',
142
- ' nitrogen',
143
- ' oxygen'
144
- ]
145
- )
146
- end
147
-
148
- it 'returns a tuple when the current has changed and an item ' \
149
- 'is selected' do
150
- menu.next_item
151
- menu.select_item
152
- menu.next_item
112
+ describe '#view' do
113
+ it 'returns a collection of items when the start position ' \
114
+ 'has changed' do
115
+ menu.top_item
153
116
  menu.next_item
154
- menu.render.must_equal(
117
+ menu.view.must_equal(
155
118
  [
156
- ' hydrogen',
157
- '* carbon',
158
- ' nitrogen',
159
- ' > oxygen'
119
+ [false, true, "carbon"],
120
+ [false, false, "nitrogen"],
121
+ [false, false, "oxygen"]
160
122
  ]
161
123
  )
162
124
  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.42'
7
+ spec.version = '0.1.0'
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.42
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
@@ -206,8 +206,6 @@ files:
206
206
  - lib/vedeu/support/translator.rb
207
207
  - lib/vedeu/support/wordwrap.rb
208
208
  - logs/.gitkeep
209
- - test/example_app/bin/app
210
- - test/example_app/lib/app.rb
211
209
  - test/lib/vedeu/application_test.rb
212
210
  - test/lib/vedeu/configuration_test.rb
213
211
  - test/lib/vedeu/launcher_test.rb
@@ -283,8 +281,6 @@ signing_key:
283
281
  specification_version: 4
284
282
  summary: A terminal case of wonderland.
285
283
  test_files:
286
- - test/example_app/bin/app
287
- - test/example_app/lib/app.rb
288
284
  - test/lib/vedeu/application_test.rb
289
285
  - test/lib/vedeu/configuration_test.rb
290
286
  - test/lib/vedeu/launcher_test.rb
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
3
-
4
- -> { its -> { a } }
5
- trap('INT') { exit! }
6
-
7
- require_relative '../lib/app'
8
-
9
- Example::App.start(ARGV.dup)
@@ -1,161 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
3
- require 'pry'
4
- require 'vedeu'
5
-
6
- module Example
7
- extend self
8
-
9
- class ExampleCommand
10
- def self.dispatch
11
- %Q|{
12
- "interfaces": {
13
- "name": "example",
14
- "lines": {
15
- "streams": [
16
- {
17
- "colour": {
18
- "foreground": "#00ff00",
19
- "background": "#0000ff"
20
- },
21
- "text": "The time is: #{Time.now}. "
22
- }
23
- ]
24
- }
25
- }
26
- }|
27
- end
28
- end
29
-
30
- class MenuCommand
31
- def self.dispatch
32
- @command ||= new
33
- @command.dispatch
34
- end
35
-
36
- def initialize; end
37
-
38
- def dispatch
39
- Vedeu::Parser.parse({ 'example' => render })
40
- end
41
-
42
- def render
43
- menu.render.map { |item| "#{item}\n" }
44
- end
45
-
46
- def menu
47
- @_menu ||= Vedeu::Menu.new(['hydrogen', 'carbon', 'nitrogen', 'oxygen'])
48
- end
49
- end
50
-
51
- class App
52
- include Vedeu
53
-
54
- # assign the interface to a variable so that you can use it as a
55
- # reference in another interface.
56
- example = interface 'example' do
57
- colour foreground: '#ff0000', background: '#000000'
58
- cursor false
59
- width 40
60
- height 5
61
- centred true
62
- end
63
-
64
- # y and x come from the interface above, ensuring that 'command'
65
- # is positioned under 'example' (see 'y')
66
- interface 'command' do
67
- colour foreground: '#aadd00', background: '#4040cc'
68
- cursor true
69
- width 40
70
- height 1
71
- y example.geometry.bottom
72
- x example.geometry.left
73
- centred false
74
- end
75
-
76
- command 'time' do
77
- entity ExampleCommand
78
- keyword 'time'
79
- keypress 't'
80
- end
81
-
82
- # command 'menu' do
83
- # entity MenuCommand
84
- # keyword 'menu'
85
- # keypress 'm'
86
- # end
87
-
88
- command 'exit' do
89
- entity Vedeu::Exit
90
- keyword 'exit'
91
- keypress 'q'
92
- end
93
-
94
- event :show_menu do
95
- MenuCommand.dispatch
96
-
97
- # Vedeu::Output.render
98
- end
99
-
100
- event :key do |key|
101
- case key
102
- when "v" then puts "v was pressed."
103
- when :f1 then puts "F1 was pressed."
104
- when :f2 then run(:some_event, [:args, :go, :here])
105
- when "x" then run(:_exit_)
106
-
107
- when :up then
108
- run(:menu_prev)
109
- run(:menu_render)
110
- run(:show_menu)
111
- run(:refresh)
112
-
113
- when :down then
114
- run(:menu_next)
115
- run(:menu_render)
116
- run(:show_menu)
117
- run(:refresh)
118
-
119
- when :page_up then
120
- run(:menu_top)
121
- run(:menu_render)
122
- run(:show_menu)
123
- run(:refresh)
124
-
125
- when :page_down then
126
- run(:menu_bottom)
127
- run(:menu_render)
128
- run(:show_menu)
129
- run(:refresh)
130
-
131
- when :enter then
132
- run(:menu_select)
133
- run(:app_select_item, m)
134
- run(:menu_render)
135
- run(:show_menu)
136
- run(:refresh)
137
-
138
- when :backspace then
139
- run(:menu_deselect)
140
- run(:menu_render)
141
- run(:show_menu)
142
- run(:refresh)
143
-
144
- when "r" then
145
- run(:menu_render)
146
- run(:show_menu)
147
- run(:refresh)
148
-
149
- when "m" then
150
- run(:show_menu)
151
- run(:refresh)
152
-
153
- else
154
- end
155
- end
156
-
157
- def self.start(args = [])
158
- Vedeu::Launcher.new(args).execute!
159
- end
160
- end
161
- end