Skip to content

Feat/branch state guard readers - #175

Merged
seuros merged 6 commits into
masterfrom
feat/branch-state-guard-readers
Sep 26, 2026
Merged

seuros merged 6 commits into
masterfrom
feat/branch-state-guard-readers

Conversation

@seuros

@seuros seuros commented Sep 25, 2026

Copy link
Copy Markdown
Member

Cherry picked bunch of correctness fixes i had locally .

None should break existing applications , however if the application were doing illegal transaction , the errors will surface.

release-as: 0.300.0

@seuros
seuros requested a balanced review from Copilot September 25, 2026 21:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Add public readers for the six state guard options so renderers don't
need instance_variable_get.

Guards are stored as frozen copies (branches are shared with subclasses)
and must be a Hash; anything else raises ArgumentError at definition.
README error handling section now reflects when errors are raised.
State guards called object.send(machine_name), which raised NoMethodError
(or read an unrelated method) when the guarded machine used attribute:.
An empty guard Hash made if_any_state/unless_all_states block the
transition forever while renderers drew it as unconditional.
Expose it as Branch#state_guards and stop allocating it on every guard
check. Merge the identical unless_state/unless_any_state branches.
Transitions guarded by if_state and friends were printed as unconditional.
STDIORenderer took keyword args while callers and the graphviz/diagram/
mermaid renderers use positional (obj, graph, options, io), so Event#draw
and State#draw raised ArgumentError. Branch#draw called an undefined
machine method; resolve it through the event.
@seuros
seuros force-pushed the feat/branch-state-guard-readers branch from 37ba556 to dda0646 Compare September 25, 2026 22:12
@seuros
seuros merged commit ea2f5cc into master Sep 26, 2026
4 checks passed
@seuros
seuros deleted the feat/branch-state-guard-readers branch September 26, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants