module AASM

def aasm_failed(state_machine_name, event_name, old_state, failures = [])

def aasm_failed(state_machine_name, event_name, old_state, failures = [])
  if self.respond_to?(:aasm_event_failed)
    self.aasm_event_failed(event_name, old_state.name)
  end
  if AASM::StateMachineStore.fetch(self.class, true).machine(state_machine_name).config.whiny_transitions
    raise AASM::InvalidTransition.new(self, event_name, state_machine_name, failures)
  else
    false
  end
end