namespace :end_state do

desc 'Draw the statemachine using GraphViz (options: machine=MyMachine, format=png, output=machine.png, event_labels=false)'
task :draw do
  options = {}
  options[:machine] = ENV['machine']
  options[:format] = ENV['format'] || :png
  options[:output] = ENV['output'] || "#{options[:machine].to_s}.#{options[:format].to_s}"
  options[:event_labels] = !(ENV['event_labels'] == 'false')
  if options[:machine]
    EndState::Graph.new(Object.const_get(options[:machine])).draw.output options[:format] => options[:output]
  else
    puts 'A machine is required'
  end
end

end