whirled_peas 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +10 -8
- data/lib/whirled_peas/command_line.rb +5 -1
- data/lib/whirled_peas/frame/event_loop.rb +2 -2
- data/lib/whirled_peas/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 563cc06007d90aa0599b61c5366a5d9b2c5224ec2973367b6c358cad95ddaedc
|
4
|
+
data.tar.gz: fa798abdfb8a8e4fd229f08b964c8ee4f4d480939ece9ddaeb5731c171985504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1be24e74d75f87a001b26f216e320d4a4680c48513e48c42047d2c2168a9404471704731df97ced5954facdc4ca7316580f6078db5670e45067c7e8ed3ee4cd3
|
7
|
+
data.tar.gz: 86f3b995575fc7ff8b6bb83adf368182a684faece1584cffb7b1150bd47ce082adaba5b0d4ce0b83d19d2ec2d795bd31db19d35c990e6d0065698c050161bcd0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v0.4.0 - 2021-01-22
|
4
|
+
|
5
|
+
- [7fd6712](https://github.com/tcollier/whirled_peas/tree/7fd6712818c94cdbfd81828277ca67c705e01793): BREAKING: replace `WhirledPeas.start` with command line executable
|
6
|
+
- [2535342](https://github.com/tcollier/whirled_peas/tree/25353424f1ab4af4880f44eb7ddd28afefbbb9b2): Add support for loading screen
|
7
|
+
- [7388fc2](https://github.com/tcollier/whirled_peas/tree/7388fc2eacdc8045b725311c11d650d6b8654be8): Add support for title fonts
|
8
|
+
- [b345155](https://github.com/tcollier/whirled_peas/tree/b345155b1c212cabe73f9a2562ac8dbbedbbb6df): Add command to list title fonts to executable
|
9
|
+
- [d3a8324](https://github.com/tcollier/whirled_peas/tree/d3a832496c36985993217ff11b6d83dd4697c4ed): Add commands for debugging application to executable
|
10
|
+
|
3
11
|
## v0.3.0 - 2021-01-21
|
4
12
|
|
5
13
|
- [617f802](https://github.com/tcollier/whirled_peas/tree/617f8027d6688a2ec81a3e594e529c94485cee85): BREAKING: send frames directly to EventLoop (`Producer#send` renamed to `Producer#send_frame`)
|
data/README.md
CHANGED
@@ -24,9 +24,9 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
A Whirled Peas application consists of the following pieces
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
- The driver (required) - the code that is to be visualized, it emits lightweight frame events through a producer
|
28
|
+
- The main template factory (required) - builds templates to convert frame events from the driver into terminal graphics
|
29
|
+
- A loading screen template factory (optional) - builds templates to display while content is loading
|
30
30
|
|
31
31
|
These pieces are configured as following
|
32
32
|
|
@@ -39,7 +39,7 @@ class TemplateFactory
|
|
39
39
|
WhirledPeas.template do |body|
|
40
40
|
body.add_box('Title') do |_, settings|
|
41
41
|
settings.underline = true
|
42
|
-
"Hello #{args[
|
42
|
+
"Hello #{args[:name]}"
|
43
43
|
end
|
44
44
|
# ...
|
45
45
|
end
|
@@ -48,7 +48,7 @@ end
|
|
48
48
|
|
49
49
|
class Driver
|
50
50
|
def start(producer)
|
51
|
-
producer.send_frame('starting', args: {
|
51
|
+
producer.send_frame('starting', args: { name: 'World' })
|
52
52
|
# ...
|
53
53
|
end
|
54
54
|
end
|
@@ -67,7 +67,7 @@ $ whirled_peas start visualize.rb
|
|
67
67
|
|
68
68
|
The optional loading screen can be configured like
|
69
69
|
|
70
|
-
|
70
|
+
```ruby
|
71
71
|
class LoadingTemplateFactory
|
72
72
|
def build
|
73
73
|
WhirledPeas.template do |t|
|
@@ -98,7 +98,7 @@ The driver is the application code to be visualized. This is typically a lightwe
|
|
98
98
|
def start(producer)
|
99
99
|
# application code here
|
100
100
|
end
|
101
|
-
|
101
|
+
```
|
102
102
|
|
103
103
|
The producer provides a single method
|
104
104
|
|
@@ -107,12 +107,14 @@ The producer provides a single method
|
|
107
107
|
#
|
108
108
|
# @param name [String] application defined name for the frame. The template factory will be provided this name
|
109
109
|
# @param duration [Number] time in seconds this frame should be displayed for (defaults to 1 frame)
|
110
|
-
# @param args [Hash] key value pairs to send as arguments to the template factory
|
110
|
+
# @param args [Hash<Symbol, Object>] key value pairs to send as arguments to the template factory
|
111
111
|
def send_frame(name, duration:, args:)
|
112
112
|
# implementation
|
113
113
|
end
|
114
114
|
```
|
115
115
|
|
116
|
+
**IMPORTANT**: the keys for arguments must be symbols.
|
117
|
+
|
116
118
|
#### Example
|
117
119
|
|
118
120
|
Simple application that loads a set of numbers and looks for a pair that adds up to 1,000
|
@@ -66,11 +66,13 @@ module WhirledPeas
|
|
66
66
|
|
67
67
|
class ConfigCommand < Command
|
68
68
|
def start
|
69
|
-
require
|
69
|
+
require config
|
70
70
|
end
|
71
71
|
|
72
72
|
private
|
73
73
|
|
74
|
+
attr_reader :config
|
75
|
+
|
74
76
|
def validate!
|
75
77
|
if args.length == 0
|
76
78
|
@error_text = "#{self.class.command_name} requires a config file"
|
@@ -78,6 +80,8 @@ module WhirledPeas
|
|
78
80
|
@error_text = "File not found: #{args[0]}"
|
79
81
|
elsif args[0][-3..-1] != '.rb'
|
80
82
|
@error_text = 'Config file should be a .rb file'
|
83
|
+
else
|
84
|
+
@config = args[0][0] == '/' ? args[0] : File.join(Dir.pwd, args[0])
|
81
85
|
end
|
82
86
|
end
|
83
87
|
|
@@ -23,8 +23,7 @@ module WhirledPeas
|
|
23
23
|
@running
|
24
24
|
end
|
25
25
|
|
26
|
-
def start
|
27
|
-
screen = UI::Screen.new
|
26
|
+
def start(screen=UI::Screen.new)
|
28
27
|
wait_for_content(screen)
|
29
28
|
play_content(screen)
|
30
29
|
rescue
|
@@ -39,6 +38,7 @@ module WhirledPeas
|
|
39
38
|
|
40
39
|
def stop
|
41
40
|
logger.info(LOGGER_ID) { 'Stopping...' }
|
41
|
+
enqueue(Frame::EOF, nil, {})
|
42
42
|
@running = false
|
43
43
|
end
|
44
44
|
|
data/lib/whirled_peas/version.rb
CHANGED