whirled_peas 0.4.0 → 0.4.1
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 +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