# File lib/vendor/fssm.rb, line 13
    def monitor(*args, &block)      
      monitor = FSSM::Monitor.new
      context = args.empty? ? monitor : monitor.path(*args)

      if block_given?
        if block.arity == 1
          block.call(context)
        else
          context.instance_eval(&block)
        end
      end

      monitor.run
    end