pushdown 0.3.0 → 0.4.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.md +8 -0
- data/lib/pushdown/spec_helpers.rb +4 -4
- data/lib/pushdown/state.rb +1 -1
- data/lib/pushdown.rb +1 -1
- data/spec/pushdown/spec_helpers_spec.rb +26 -0
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07f7a5dfc7c5783cd2fe4e7e610467519ef85ed1a7ff857bce91c58805f6f457
|
4
|
+
data.tar.gz: 02a41fb1852f955d282834ea9ff397d98bb66681f3a7f38b26e13d00503a89dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 537d7f75b6265b4a08b20b67d9f547a42b27514e18d46a7dc9d3bd0f2066ae8161424bf92f39d2c25ad8dca2762a3731deb368c259f26c65004e26244a388f54
|
7
|
+
data.tar.gz: b5398fee7bc5fe436f39c8ad760118fd6178baadf13362e85402b442fd609d10b5a5b6d73c2b04a49700ab30641be4d4d190d156e5622c0de9ffe19d9557b965
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# Release History for pushdown
|
2
2
|
|
3
3
|
---
|
4
|
+
## v0.4.0 [2021-09-21] Michael Granger <ged@faeriemud.org>
|
5
|
+
|
6
|
+
Improvements:
|
7
|
+
|
8
|
+
- Report operator arguments in the spec matcher failure output.
|
9
|
+
- Allow the State event callback to accept additional arguments.
|
10
|
+
|
11
|
+
|
4
12
|
## v0.3.0 [2021-09-01] Michael Granger <ged@faeriemud.org>
|
5
13
|
|
6
14
|
Change:
|
@@ -103,9 +103,9 @@ module Pushdown::SpecHelpers
|
|
103
103
|
|
104
104
|
|
105
105
|
### Specify that the operation that should cause the transition is the #on_event callback.
|
106
|
-
def on_an_event( event )
|
106
|
+
def on_an_event( event, *args )
|
107
107
|
raise ScriptError, "can't specify more than one callback" if self.callback
|
108
|
-
@callback = [ :on_event, event ]
|
108
|
+
@callback = [ :on_event, event, *args ]
|
109
109
|
return self
|
110
110
|
end
|
111
111
|
alias_method :on_event, :on_an_event
|
@@ -182,9 +182,9 @@ module Pushdown::SpecHelpers
|
|
182
182
|
desc << " to %s" % [ self.target_state ] if self.target_state
|
183
183
|
|
184
184
|
if self.callback
|
185
|
-
methname,
|
185
|
+
methname, *args = self.callback
|
186
186
|
desc << " when #%s is called" % [ methname ]
|
187
|
-
desc << " with %
|
187
|
+
desc << " with %s" % [ args.map(&:inspect).join(', ') ] if !args.empty?
|
188
188
|
end
|
189
189
|
|
190
190
|
desc << ', but '
|
data/lib/pushdown/state.rb
CHANGED
@@ -107,7 +107,7 @@ class Pushdown::State
|
|
107
107
|
|
108
108
|
### Event callback -- called by the automaton when its #on_<stackname>_event method
|
109
109
|
### is called. This method can return a Transition or a Symbol which maps to one.
|
110
|
-
def on_event( event )
|
110
|
+
def on_event( event, *args )
|
111
111
|
return nil # no-op
|
112
112
|
end
|
113
113
|
|
data/lib/pushdown.rb
CHANGED
@@ -352,6 +352,19 @@ RSpec.describe( Pushdown::SpecHelpers ) do
|
|
352
352
|
end
|
353
353
|
|
354
354
|
|
355
|
+
it "supports giving additional arguments to pass the #on_event operation" do
|
356
|
+
state_class.transition_push( :change, :other )
|
357
|
+
|
358
|
+
state = state_class.new
|
359
|
+
expect( state ).to receive( :on_event ).with( :foo, 1, "another arg" ).
|
360
|
+
and_return( :change )
|
361
|
+
|
362
|
+
expect {
|
363
|
+
expect( state ).to transition.on_an_event( :foo, 1, "another arg" )
|
364
|
+
}.to_not raise_error
|
365
|
+
end
|
366
|
+
|
367
|
+
|
355
368
|
it "adds the callback to the description if on_update is specified" do
|
356
369
|
state_class.transition_push( :change, :other )
|
357
370
|
|
@@ -373,6 +386,19 @@ RSpec.describe( Pushdown::SpecHelpers ) do
|
|
373
386
|
}.to fail_matching( /transition when #on_event is called with :foo/i )
|
374
387
|
end
|
375
388
|
|
389
|
+
|
390
|
+
it "handles multiple callback arguments on failures" do
|
391
|
+
state_class.transition_push( :change, :other )
|
392
|
+
|
393
|
+
state = state_class.new
|
394
|
+
allow( state ).to receive( :on_event ).with( :foo, 18, "nebraska" ).
|
395
|
+
and_return( nil )
|
396
|
+
|
397
|
+
expect {
|
398
|
+
expect( state ).to transition.on_an_event( :foo, 18, "nebraska" )
|
399
|
+
}.to fail_matching( /#on_event is called with :foo, 18, "nebraska"/i )
|
400
|
+
end
|
401
|
+
|
376
402
|
end
|
377
403
|
|
378
404
|
describe "negated matcher" do
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pushdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -33,7 +33,7 @@ cert_chain:
|
|
33
33
|
MCh97sQ/Z/MOusb5+QddBmB+k8EicXyGNl4b5L4XpL7fIQu+Y96TB3JEJlShxFD9
|
34
34
|
k9FjI4d9EP54gS/4
|
35
35
|
-----END CERTIFICATE-----
|
36
|
-
date: 2021-09-
|
36
|
+
date: 2021-09-21 00:00:00.000000000 Z
|
37
37
|
dependencies:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: loggability
|
metadata.gz.sig
CHANGED
Binary file
|