vedeu 0.0.42 → 0.1.0

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: 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