def em opts = {}, &block
      opts = default_options.merge(opts.is_a?(Hash) ? opts : {spec_timeout: opts})
      @evented_example = EMExample.new(opts, self, &block)
      @evented_example.run
    end
def em opts = {}, &block
      opts = default_options.merge(opts.is_a?(Hash) ? opts : {spec_timeout: opts})
      @evented_example = EMExample.new(opts, self, &block)
      @evented_example.run
    end
Yields to block inside EM loop, :spec_timeout option (in seconds) is used to
 force spec to timeout if something goes wrong and EM/AMQP loop hangs for some
 reason. SpecTimeoutExceededError is raised if it happens.

 For compatibility with EM-Spec API, em method accepts either options Hash
 or numeric timeout in seconds.