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?