Goal: Execute action based on condition then raise explicit event based on execution of action block
ruleset a60x45 {
meta {
name "Conditional action blocks and else postludes"
author "Mike Grace"
description <<
showing off how to conditionaly fire an action block and using else postludes
>>
logging on
}
rule maybe_fire_based_on_random_num {
select when pageview ".*"
pre {
r = math:random(2);
}
if (r == 0) then {
noop();
}
fired {
raise explicit event zero;
} else {
raise explicit event one;
}
}
rule random_num_was_zero {
select when explicit zero
{
notify("Zero!","") with sticky = true;
}
}
rule random_num_was_one {
select when explicit one
{
notify("One!","") with sticky = true;
}
}
}
- 14 get random number of 0 or 1
- 16 action block conditional – don’t forget the ‘then’!
- 17 noop() is an action that does nothing
- 19-23 postlude block
- 19-20 if the action block fired because r did == 0 then the explicit event zero is raised
- 21-22 if the action block did NOT fire because r did == 1 then the explicit event one is raised
- 27 selects when the explicit zero event is raised
App run several times one example.com using bookmarklet:
Get the bookmarklet to try it out yourself!
Gratuitous day 6 crazy face

