def via_hop(*hops)
      hops = hops.flatten.compact 
      if hops.first.nil?
        return @rye_via
      elsif hops.first.is_a?(Rye::Hop)
        @rye_via = hops.first
      elsif hops.first.is_a?(String)
        hop = hops.shift
        if hops.first.is_a?(Hash)
          @rye_via = Rye::Hop.new(hop, hops.first)
        else
          @rye_via = Rye::Hop.new(hop)
        end
      end
      disconnect
      self
    end
def via_hop(*hops)
      hops = hops.flatten.compact 
      if hops.first.nil?
        return @rye_via
      elsif hops.first.is_a?(Rye::Hop)
        @rye_via = hops.first
      elsif hops.first.is_a?(String)
        hop = hops.shift
        if hops.first.is_a?(Hash)
          @rye_via = Rye::Hop.new(hop, hops.first)
        else
          @rye_via = Rye::Hop.new(hop)
        end
      end
      disconnect
      self
    end
* +host+ The hostname to connect to. Default: localhost.
 * +user+ The username to connect as. Default: SSH config file or current shell user.
 * +opts+ a hash of optional arguments.

 The +opts+ hash excepts the following keys:

 * :port => remote server ssh port. Default: SSH config file or 22
 * :keys => one or more private key file paths (passwordless login)
 * :via => the Rye::Hop to access this host through
 * :info => an IO object to print Rye::Box command info to. Default: nil
 * :debug => an IO object to print Rye::Box debugging info to. Default: nil
 * :error => an IO object to print Rye::Box errors to. Default: STDERR
 * :getenv => pre-fetch +host+ environment variables? (default: true)
 * :password => the user's password (ignored if there's a valid private key)
 * :templates => the template engine to use for uploaded files. One of: :erb (default)
 * :sudo => Run all commands via sudo (default: false)

 NOTE: +opts+ can also contain any parameter supported by
 Net::SSH.start that is not already mentioned above.

 * +hops+ Rye::Hop objects will be added directly
 to the set. Hostnames will be used to create new instances of Rye::Hop
 h1 = Rye::Hop.new "host1"
 h1.via_hop "host2", :user => "service_user"

 OR

 h1 = Rye::Hop.new "host1"
 h2 = Rye::Hop.new "host2"
 h1.via_hop h2