class StatefulEnum::Graph::EventDrawer

Public Class Methods

new(g, states, prefix, suffix, name, &block) click to toggle source
# File lib/generators/stateful_enum/graph_generator.rb, line 51
def initialize(g, states, prefix, suffix, name, &block)
  @g, @states, @prefix, @suffix, @name = g, states, prefix, suffix, name
  @before, @after = [], []

  instance_eval(&block) if block
end

Public Instance Methods

transition(transitions, options = {}) click to toggle source
# File lib/generators/stateful_enum/graph_generator.rb, line 58
def transition(transitions, options = {})
  if options.blank?
    transitions.delete :if
    transitions.delete :unless
  end

  transitions.each_pair do |from, to|
    Array(from).each do |f|
      @g.add_edge f.to_s, to.to_s, label: "#{@prefix}#{@name}#{@suffix}"
    end
  end
end