From 84f164cc8ba804d97f852fafb9aa5ddf4497f6a3 Mon Sep 17 00:00:00 2001 From: David Chandek-Stark Date: Mon, 11 Nov 2024 12:13:55 -0500 Subject: [PATCH] Limit keys from state and event meta hashes passed to draw methods (fixes #236) --- lib/workflow/event.rb | 6 +++++- lib/workflow/state.rb | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/workflow/event.rb b/lib/workflow/event.rb index 341c7e5..69be810 100644 --- a/lib/workflow/event.rb +++ b/lib/workflow/event.rb @@ -38,7 +38,11 @@ def condition_applicable?(object, event_arguments) end def draw(graph, from_state) - graph.add_edges(from_state.name.to_s, transitions_to.to_s, meta.merge(:label => to_s)) + edgesattrs = GraphViz::Constants::EDGESATTRS.keys.map(&:to_sym) + + defaults = { label: to_s } + + graph.add_edges(from_state.name.to_s, transitions_to.to_s, defaults.merge(meta.slice(*edgesattrs))) end def to_s diff --git a/lib/workflow/state.rb b/lib/workflow/state.rb index f8e14e9..4fa585e 100644 --- a/lib/workflow/state.rb +++ b/lib/workflow/state.rb @@ -15,7 +15,9 @@ def draw(graph) :shape => 'ellipse' } - node = graph.add_nodes(to_s, defaults.merge(meta)) + nodesattrs = GraphViz::Constants::NODESATTRS.keys.map(&:to_sym) + + node = graph.add_nodes(to_s, defaults.merge(meta.slice(*nodesattrs))) # Add open arrow for initial state # graph.add_edge(graph.add_node('starting_state', :shape => 'point'), node) if initial?