Report abuse

#!/usr/bin/env ruby
require 'singleton'
module Terminator

 class Head
  include Singleton
  @bonked = false

  class << self
   def injured?
    @bonked
   end

   def bonk
    @bonked = !@bonked
    return "Ouch!"
   end
  end
 end

 class Mission
  def initialize
   @missions = { :usual => "Kill John Connor", 
    :opposite => "Protect John Connor" }
   @accomplished = false
  end

  def perform
   x = (Terminator::Head.injured? ? :opposite : :usual)
   puts "Executing mission: #{@missions[x]}"; 
   while !@accomplished
    # do what it takes
   end
   puts "Mission accomplished."
   return true
  end
 end
end