aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-05-12 15:05:26 +0000
committers-ol <s+removethis@s-ol.nu>2025-03-02 14:23:21 +0000
commit07e5044618d0715d04f02384c960e3ad86903561 (patch)
tree92b64305a4109731beb26109278a0b9ee1827587
parentreport errors when requiring lua modules (diff)
downloadalive-07e5044618d0715d04f02384c960e3ad86903561.tar.gz
alive-07e5044618d0715d04f02384c960e3ad86903561.zip
EvtStream:set(nil) doesnt set :dirty
-rw-r--r--alv/result/evt.moon2
-rw-r--r--spec/result/evt_spec.moon17
2 files changed, 19 insertions, 0 deletions
diff --git a/alv/result/evt.moon b/alv/result/evt.moon
index a89aa74..6bd0fee 100644
--- a/alv/result/evt.moon
+++ b/alv/result/evt.moon
@@ -65,7 +65,9 @@ class EvtStream extends Result
--- push an event value into the stream.
--
-- Marks this stream as dirty for the remainder of the current tick.
+ -- If `event` is nil, does nothing.
set: (event) =>
+ return if event == nil
assert not @dirty!, "#{@} is already dirty!"
@updated = COPILOT.T
@value = event
diff --git a/spec/result/evt_spec.moon b/spec/result/evt_spec.moon
index 93c09e0..c9416db 100644
--- a/spec/result/evt_spec.moon
+++ b/spec/result/evt_spec.moon
@@ -52,6 +52,23 @@ describe 'EvtStream', ->
assert.is.equal 3, stream\unwrap!
assert.is.true stream\dirty!
+ it 'ignores nil values', ->
+ stream = EvtStream T.num
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set!
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set nil
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set false
+ assert.is.equal false, stream\unwrap!
+ assert.is.true stream\dirty!
+
it 'errors when set twice', ->
stream = EvtStream T.num
stream\set 1