net-ssh-telnet 0.0.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.yardopts +1 -0
- data/Gemfile +4 -0
- data/History.txt +13 -2
- data/README.txt +4 -3
- data/Rakefile +1 -14
- data/lib/net/ssh/telnet.rb +91 -26
- data/lib/net/ssh/telnet/version.rb +7 -0
- data/net-ssh-telnet.gemspec +22 -0
- metadata +62 -79
- data.tar.gz.sig +0 -1
- data/Manifest.txt +0 -11
- metadata.gz.sig +0 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 00bb9ece1f4ba5a748bc3c1c7f6a65f386c76543
         | 
| 4 | 
            +
              data.tar.gz: 9af12f0b2318c4e1123ead13004f7223974bb9ce
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 1d6d0b0c1a9b38d5f96f0f89d4b556c69621a768629625dc3e70c7709a75819fdd480b218a9db10c2a3f53cac5a33152e4d002494a996431aec0a45edd707baf
         | 
| 7 | 
            +
              data.tar.gz: e148e3bae70620f0413b1cab661a1b35473c8bed1e596ae5f32b92bac142bc30b8735477f49f7dbd1ccc6117e22c30433e76e1f549100f79ac7e4b7a669c6b76
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.yardopts
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            - History.txt
         | 
    
        data/Gemfile
    ADDED
    
    
    
        data/History.txt
    CHANGED
    
    | @@ -1,8 +1,19 @@ | |
| 1 | 
            +
            === 0.2.0 / 2017-01-16
         | 
| 2 | 
            +
            * Add option to change prompt after initialization
         | 
| 3 | 
            +
            * Cleanup requires for gemspec
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            === 0.1.1 / 2016-05-06
         | 
| 6 | 
            +
            * Apply fix to race condition during initialization from lumean
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            === 0.1.0 / 2016-02-09
         | 
| 9 | 
            +
            * Fixed 'Timeout' and 'Waittime' options
         | 
| 10 | 
            +
            * Fork to net-ssh-telnet2
         | 
| 11 | 
            +
             | 
| 1 12 | 
             
            === 0.0.2 / 2009-03-15
         | 
| 2 13 |  | 
| 3 14 | 
             
            * 4 bugfixes from Brian Candler
         | 
| 4 | 
            -
              * Bug in original Net::Telnet EOL translation | 
| 5 | 
            -
                (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/16599) | 
| 15 | 
            +
              * Bug in original Net::Telnet EOL translation
         | 
| 16 | 
            +
                (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/16599)
         | 
| 6 17 | 
             
                duplicate the fix.
         | 
| 7 18 | 
             
              * Remove rubygems require.
         | 
| 8 19 | 
             
              * Handle EOF more gracefully.
         | 
    
        data/README.txt
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            = net-ssh-telnet
         | 
| 2 2 |  | 
| 3 | 
            -
            *  | 
| 4 | 
            -
            * mailto: | 
| 3 | 
            +
            * https://github.com/duke-automation/net-ssh-telnet
         | 
| 4 | 
            +
            * mailto:sean@duke.edu
         | 
| 5 5 |  | 
| 6 6 | 
             
            == DESCRIPTION:
         | 
| 7 7 |  | 
| @@ -20,7 +20,7 @@ Please see Net::Telnet for main documentation (included with ruby stdlib). | |
| 20 20 |  | 
| 21 21 | 
             
            == REQUIREMENTS:
         | 
| 22 22 |  | 
| 23 | 
            -
            * net-ssh >= 2.0.1 | 
| 23 | 
            +
            * net-ssh >= 2.0.1
         | 
| 24 24 |  | 
| 25 25 | 
             
            == INSTALL:
         | 
| 26 26 |  | 
| @@ -33,6 +33,7 @@ Please see Net::Telnet for main documentation (included with ruby stdlib). | |
| 33 33 | 
             
            Based on code in net/telnet.rb by Wakou Aoyama <wakou@ruby-lang.org>
         | 
| 34 34 | 
             
            Modified to work with Net::SSH by Brian Candler <b.candler@pobox.com>
         | 
| 35 35 | 
             
            Additional Net::SSH v2 modifications by Matthew Kent <matt@bravenet.com>
         | 
| 36 | 
            +
            Additional Net::SSH v2 modifications by Sean Dilda <sean@duke.edu>
         | 
| 36 37 |  | 
| 37 38 | 
             
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 38 39 | 
             
            a copy of this software and associated documentation files (the
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -1,14 +1 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
            require 'rubygems'
         | 
| 4 | 
            -
            require 'hoe'
         | 
| 5 | 
            -
            $:.unshift(File.dirname(__FILE__) + "/lib")
         | 
| 6 | 
            -
            require 'net/ssh/telnet'
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            Hoe.new('net-ssh-telnet', Net::SSH::Telnet::VERSION) do |p|
         | 
| 9 | 
            -
              p.developer('Matthew Kent', 'matt@bravenet.com')
         | 
| 10 | 
            -
              p.extra_deps << ['net-ssh', '>= 2.0.1']
         | 
| 11 | 
            -
              p.remote_rdoc_dir = ''
         | 
| 12 | 
            -
            end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            # vim: syntax=Ruby
         | 
| 1 | 
            +
            require "bundler/gem_tasks"
         | 
    
        data/lib/net/ssh/telnet.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            require 'net/ssh'
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
            module Net
         | 
| 4 4 | 
             
            module SSH
         | 
| 5 5 |  | 
| @@ -8,13 +8,12 @@ module SSH | |
| 8 8 | 
             
              # Provides a simple send/expect interface with an API almost
         | 
| 9 9 | 
             
              # identical to Net::Telnet. Please see Net::Telnet for main documentation.
         | 
| 10 10 | 
             
              # Only the differences are documented here.
         | 
| 11 | 
            -
             | 
| 11 | 
            +
             | 
| 12 12 | 
             
              class Telnet
         | 
| 13 13 |  | 
| 14 14 | 
             
                CR   = "\015"
         | 
| 15 15 | 
             
                LF   = "\012"
         | 
| 16 16 | 
             
                EOL  = CR + LF
         | 
| 17 | 
            -
                VERSION = '0.0.2'
         | 
| 18 17 |  | 
| 19 18 | 
             
                # Wrapper to emulate the behaviour of Net::Telnet "Proxy" option, where
         | 
| 20 19 | 
             
                # the user passes in an already-open socket
         | 
| @@ -37,10 +36,10 @@ module SSH | |
| 37 36 | 
             
                # as shown below.
         | 
| 38 37 | 
             
                #
         | 
| 39 38 | 
             
                # Note that unlike Net::Telnet there is no preprocess method automatically
         | 
| 40 | 
            -
                # setting up options related to proper character translations, so if your | 
| 41 | 
            -
                # remote ptty is configured differently than the typical linux one you may | 
| 42 | 
            -
                # need to pass in a different terminator or call 'stty' remotely to set it | 
| 43 | 
            -
                # into an expected mode. This is better explained by the author of perl's | 
| 39 | 
            +
                # setting up options related to proper character translations, so if your
         | 
| 40 | 
            +
                # remote ptty is configured differently than the typical linux one you may
         | 
| 41 | 
            +
                # need to pass in a different terminator or call 'stty' remotely to set it
         | 
| 42 | 
            +
                # into an expected mode. This is better explained by the author of perl's
         | 
| 44 43 | 
             
                # Net::SSH::Expect here:
         | 
| 45 44 | 
             
                #
         | 
| 46 45 | 
             
                # http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.04/lib/Net/SSH/Expect.pod
         | 
| @@ -135,7 +134,26 @@ module SSH | |
| 135 134 | 
             
                #   )
         | 
| 136 135 | 
             
                #   puts "Logged in"
         | 
| 137 136 | 
             
                #   puts s.cmd("show alerts")
         | 
| 138 | 
            -
             | 
| 137 | 
            +
                #
         | 
| 138 | 
            +
                # New objects take a +option+ hash to set default settings. The keys for this options hash
         | 
| 139 | 
            +
                # are all strings. A block can also be passed to constructor which will get executed after
         | 
| 140 | 
            +
                # the first prompt is found.
         | 
| 141 | 
            +
                #
         | 
| 142 | 
            +
                # ==== Hash Parameters
         | 
| 143 | 
            +
                #
         | 
| 144 | 
            +
                # * <tt>"Host"</tt> - a string to define the hostname to connect to(Default: "localhost")
         | 
| 145 | 
            +
                # * <tt>"Port"</tt> - port number to connect to(Default: 22)
         | 
| 146 | 
            +
                # * <tt>"Prompt"</tt> - a regular expression to define the the prompt to expect(Default: /[$%#>] \z/n )
         | 
| 147 | 
            +
                # * <tt>"Timeout"</tt> - the time out value passed on to Net::Ssh - also the default value for #waitfor(Default: 10)
         | 
| 148 | 
            +
                # * <tt>"Waittime"</tt> - Max time to wait after a possible prompt it seen to make sure more data isn't coming(Default: 0)
         | 
| 149 | 
            +
                # * <tt>"Terminator"</tt> - This value is appended to all strings that are sent to #print.(Default: LF)
         | 
| 150 | 
            +
                # * <tt>"Binmode"</tt> - Enable binary mode.(Default: false)
         | 
| 151 | 
            +
                # * <tt>"Output_log"</tt> - A file name to open as an output log.
         | 
| 152 | 
            +
                # * <tt>"Dump_log"</tt> - A file name to open to dump the entire session to.
         | 
| 153 | 
            +
                # * <tt>"Session"</tt> - An existing Net::Ssh object for Net::Ssh::Telnet to use as its connection(See example 1)
         | 
| 154 | 
            +
                # * <tt>"Proxy"</tt> - An open IO object to use as a Proxy(See example 3)
         | 
| 155 | 
            +
                # * <tt>"Factory"</tt> - A connection factory to use to establish the connection. Net::Ssh::Telnet will call #open(host, post) on this object.(See example 4)
         | 
| 156 | 
            +
                #
         | 
| 139 157 | 
             
                def initialize(options, &blk) # :yield: mesg
         | 
| 140 158 | 
             
                  @options = options
         | 
| 141 159 | 
             
                  @options["Host"]       = "localhost"   unless @options.has_key?("Host")
         | 
| @@ -233,6 +251,9 @@ module SSH | |
| 233 251 | 
             
                  @eof = false
         | 
| 234 252 | 
             
                  @channel = nil
         | 
| 235 253 | 
             
                  @ssh.open_channel do |channel|
         | 
| 254 | 
            +
                    channel.on_data { |ch,data| @buf << data }
         | 
| 255 | 
            +
                    channel.on_extended_data { |ch,type,data| @buf << data if type == 1 }
         | 
| 256 | 
            +
                    channel.on_close { @eof = true }
         | 
| 236 257 | 
             
                    channel.request_pty { |ch,success|
         | 
| 237 258 | 
             
                      if success == false
         | 
| 238 259 | 
             
                        raise "Failed to open ssh pty"
         | 
| @@ -247,22 +268,18 @@ module SSH | |
| 247 268 | 
             
                        raise "Failed to open ssh shell"
         | 
| 248 269 | 
             
                      end
         | 
| 249 270 | 
             
                    }
         | 
| 250 | 
            -
                    channel.on_data { |ch,data| @buf << data }
         | 
| 251 | 
            -
                    channel.on_extended_data { |ch,type,data| @buf << data if type == 1 }
         | 
| 252 | 
            -
                    channel.on_close { @eof = true }
         | 
| 253 271 | 
             
                  end
         | 
| 254 272 | 
             
                  @ssh.loop
         | 
| 255 273 | 
             
                end # initialize
         | 
| 256 274 |  | 
| 257 275 | 
             
                # Close the ssh channel, and also the entire ssh session if we
         | 
| 258 276 | 
             
                # opened it.
         | 
| 259 | 
            -
             | 
| 260 277 | 
             
                def close
         | 
| 261 278 | 
             
                  @channel.close if @channel
         | 
| 262 279 | 
             
                  @channel = nil
         | 
| 263 280 | 
             
                  @ssh.close if @close_all and @ssh
         | 
| 264 281 | 
             
                end
         | 
| 265 | 
            -
             | 
| 282 | 
            +
             | 
| 266 283 | 
             
                # The ssh session and channel we are using.
         | 
| 267 284 | 
             
                attr_reader :ssh, :channel
         | 
| 268 285 |  | 
| @@ -289,7 +306,20 @@ module SSH | |
| 289 306 | 
             
                end
         | 
| 290 307 |  | 
| 291 308 | 
             
                # Read data from the host until a certain sequence is matched.
         | 
| 292 | 
            -
             | 
| 309 | 
            +
                #
         | 
| 310 | 
            +
                # The +options+ parameter takes an string keyed option Hash or a String.
         | 
| 311 | 
            +
                #
         | 
| 312 | 
            +
                # A block can be provided to be called after the first prompt or match is found.
         | 
| 313 | 
            +
                #
         | 
| 314 | 
            +
                # ==== Hash Parameters
         | 
| 315 | 
            +
                #
         | 
| 316 | 
            +
                # * <tt>"Match"</tt> - Regular expression to match
         | 
| 317 | 
            +
                # * <tt>"Prompt"</tt> - Regular expression to match (Same as "Match")
         | 
| 318 | 
            +
                # * <tt>"String"</tt> - String to match
         | 
| 319 | 
            +
                # * <tt>"Timeout"</tt> - Max time in seconds that can pass between packets (Default: 10 - set to false for no timeout)
         | 
| 320 | 
            +
                # * <tt>"Waittime"</tt> - Max time to wait after a possible prompt it seen to make sure more data isn't coming(Default: 0)
         | 
| 321 | 
            +
                # * <tt>"FailEOF"</tt> - Raise EOFError if EOF is reached on the connection.(Default: false)
         | 
| 322 | 
            +
                #
         | 
| 293 323 | 
             
                def waitfor(options) # :yield: recvdata
         | 
| 294 324 | 
             
                  time_out = @options["Timeout"]
         | 
| 295 325 | 
             
                  waittime = @options["Waittime"]
         | 
| @@ -319,15 +349,16 @@ module SSH | |
| 319 349 | 
             
                  rest = ''
         | 
| 320 350 | 
             
                  sock = @ssh.transport.socket
         | 
| 321 351 |  | 
| 322 | 
            -
                  until  | 
| 323 | 
            -
                     | 
| 324 | 
            -
             | 
| 325 | 
            -
             | 
| 326 | 
            -
             | 
| 327 | 
            -
             | 
| 328 | 
            -
             | 
| 329 | 
            -
                       | 
| 352 | 
            +
                  until @ssh.transport.socket.available == 0 && @buf == "" && prompt === line && (@eof || (!sock.closed? && !IO::select([sock], nil, nil, waittime)))
         | 
| 353 | 
            +
                    # @buf may have content if it was processed by Net::SSH before #waitfor
         | 
| 354 | 
            +
                    # was called
         | 
| 355 | 
            +
                    # The prompt is checked in case a waittime was specified, we've already
         | 
| 356 | 
            +
                    # seen the prompt, but a protocol-level packet came through during the
         | 
| 357 | 
            +
                    # above IO::select, causing us to reprocess
         | 
| 358 | 
            +
                    if @buf == '' && (@ssh.transport.socket.available == 0) && !(prompt === line) && !IO::select([sock], nil, nil, time_out)
         | 
| 359 | 
            +
                      raise Net::ReadTimeout, "timed out while waiting for more data"
         | 
| 330 360 | 
             
                    end
         | 
| 361 | 
            +
                    _process_ssh
         | 
| 331 362 | 
             
                    if @buf != ""
         | 
| 332 363 | 
             
                      c = @buf; @buf = ""
         | 
| 333 364 | 
             
                      @dumplog.log_dump('<', c) if @options.has_key?("Dump_log")
         | 
| @@ -362,10 +393,13 @@ module SSH | |
| 362 393 | 
             
                # dumplog, if the Dump_log option is set.
         | 
| 363 394 | 
             
                def write(string)
         | 
| 364 395 | 
             
                  @dumplog.log_dump('>', string) if @options.has_key?("Dump_log")
         | 
| 396 | 
            +
                  # Add string to Net:SSH output queue
         | 
| 365 397 | 
             
                  @channel.send_data string
         | 
| 398 | 
            +
                  # Call single instance of Net::SSH loop to process output queue
         | 
| 399 | 
            +
                  _process_ssh
         | 
| 366 400 | 
             
                end
         | 
| 367 401 |  | 
| 368 | 
            -
                # Sends  | 
| 402 | 
            +
                # Sends +string+ to the host.
         | 
| 369 403 | 
             
                #
         | 
| 370 404 | 
             
                # This does _not_ automatically append a newline to the string.  Embedded
         | 
| 371 405 | 
             
                # newlines may be converted depending upon the values of binmode or
         | 
| @@ -380,21 +414,40 @@ module SSH | |
| 380 414 | 
             
                  end
         | 
| 381 415 | 
             
                end
         | 
| 382 416 |  | 
| 383 | 
            -
                #  | 
| 417 | 
            +
                # Change the standard prompt
         | 
| 418 | 
            +
                # This is useful if you need a special prompt value for initializing the
         | 
| 419 | 
            +
                # session, but want to use a different prompt for the rest of the session
         | 
| 420 | 
            +
                def prompt= val
         | 
| 421 | 
            +
                  @options["Prompt"] = val
         | 
| 422 | 
            +
                end
         | 
| 423 | 
            +
             | 
| 424 | 
            +
                # Sends +string+ to the host.
         | 
| 384 425 | 
             
                #
         | 
| 385 426 | 
             
                # Same as #print(), but appends a newline to the string.
         | 
| 386 427 | 
             
                def puts(string)
         | 
| 387 428 | 
             
                  self.print(string + "\n")
         | 
| 388 429 | 
             
                end
         | 
| 389 430 |  | 
| 390 | 
            -
                #  | 
| 431 | 
            +
                # Sends a command to the host.
         | 
| 391 432 | 
             
                #
         | 
| 392 433 | 
             
                # More exactly, sends a string to the host, and reads in all received
         | 
| 393 434 | 
             
                # data until is sees the prompt or other matched sequence.
         | 
| 394 435 | 
             
                #
         | 
| 395 436 | 
             
                # The command or other string will have the newline sequence appended
         | 
| 396 437 | 
             
                # to it.
         | 
| 397 | 
            -
             | 
| 438 | 
            +
                #
         | 
| 439 | 
            +
                # The +options+ parameter takes a String or Hash. The Hash can be used to override the
         | 
| 440 | 
            +
                # default settings that were established when the object was created.
         | 
| 441 | 
            +
                #
         | 
| 442 | 
            +
                # A block can be provided to be called when the first prompt or "Match" is found.
         | 
| 443 | 
            +
                #
         | 
| 444 | 
            +
                # ==== Hash Parameters
         | 
| 445 | 
            +
                #
         | 
| 446 | 
            +
                # * <tt>"String"</tt> - This string is sent over the connection via the #puts method.
         | 
| 447 | 
            +
                # * <tt>"Match"</tt> - Passed to #waitfor as the "Prompt" parameter. See its defintion for details.
         | 
| 448 | 
            +
                # * <tt>"Timeout"</tt> - Passed to #waitfor see its definition for details
         | 
| 449 | 
            +
                # * <tt>"FailEOF"</tt> - Passed to #waitfor see its definition for details
         | 
| 450 | 
            +
                #
         | 
| 398 451 | 
             
                def cmd(options) # :yield: recvdata
         | 
| 399 452 | 
             
                  match    = @options["Prompt"]
         | 
| 400 453 | 
             
                  time_out = @options["Timeout"]
         | 
| @@ -417,6 +470,18 @@ module SSH | |
| 417 470 | 
             
                  end
         | 
| 418 471 | 
             
                end
         | 
| 419 472 |  | 
| 473 | 
            +
                private
         | 
| 474 | 
            +
             | 
| 475 | 
            +
                def _process_ssh
         | 
| 476 | 
            +
                  begin
         | 
| 477 | 
            +
                    @channel.connection.process(0)
         | 
| 478 | 
            +
                  rescue IOError
         | 
| 479 | 
            +
                    @eof = true
         | 
| 480 | 
            +
                  end
         | 
| 481 | 
            +
                end
         | 
| 482 | 
            +
             | 
| 420 483 | 
             
              end  # class Telnet
         | 
| 421 484 | 
             
            end  # module SSH
         | 
| 422 485 | 
             
            end  # module Net
         | 
| 486 | 
            +
             | 
| 487 | 
            +
            require 'net/ssh/telnet/version'
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            lib = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require 'net/ssh/telnet/version'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |spec|
         | 
| 7 | 
            +
              spec.name          = "net-ssh-telnet"
         | 
| 8 | 
            +
              spec.version       = Net::SSH::Telnet::VERSION
         | 
| 9 | 
            +
              spec.authors       = ["Sean Dilda"]
         | 
| 10 | 
            +
              spec.email         = ["sean@duke.edu"]
         | 
| 11 | 
            +
              spec.description   = %q{A ruby module to provide a simple send/expect interface over SSH with an API almost identical to Net::Telnet. Ideally it should be a drop in replacement. Please see Net::Telnet for main documentation (included with ruby stdlib).}
         | 
| 12 | 
            +
              spec.summary       = %q{Provides Net::Telnet API for SSH connections}
         | 
| 13 | 
            +
              spec.homepage      = "https://github.com/duke-automation/net-ssh-telnet"
         | 
| 14 | 
            +
              spec.license       = "MIT"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              spec.files         = `git ls-files`.split($/)
         | 
| 17 | 
            +
              spec.require_paths = ["lib"]
         | 
| 18 | 
            +
              spec.extra_rdoc_files = ['README.txt', 'History.txt']
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              spec.add_runtime_dependency 'net-ssh', '>= 2.0.1'
         | 
| 21 | 
            +
              spec.add_development_dependency 'rake'
         | 
| 22 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,73 +1,58 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: net-ssh-telnet
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
              version: 0.0 | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 | 
            -
            authors: | 
| 7 | 
            -
            -  | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Sean Dilda
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 | 
            -
            cert_chain: 
         | 
| 11 | 
            -
            -  | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
              dDEYMBYGCgmSJomT8ixkARkWCG1hZ29henVsMRMwEQYKCZImiZPyLGQBGRYDY29t
         | 
| 15 | 
            -
              MB4XDTA4MDcyODA0NTIzMVoXDTA5MDcyODA0NTIzMVowPzEOMAwGA1UEAwwFbWtl
         | 
| 16 | 
            -
              bnQxGDAWBgoJkiaJk/IsZAEZFghtYWdvYXp1bDETMBEGCgmSJomT8ixkARkWA2Nv
         | 
| 17 | 
            -
              bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK9kASXLzL37znIcJoWH
         | 
| 18 | 
            -
              lE6LYK9Drf9/tTP0aMJBRwzFAL6NP4KCDTSbzRcurb2gqJI5Hz7wJBm7QQaw7jnx
         | 
| 19 | 
            -
              F+wUWEUnXF9v8BIpruFpIM+VHIMaj4h5ifSOh7lOARCn0tBHYYadxlyHhj+cROCf
         | 
| 20 | 
            -
              h8SPXUQ7Otsba/8tIjYZTh+tiru7hZApAXZRZOiGPjARwuqvcWYYstbxWOyG5hAB
         | 
| 21 | 
            -
              QHdhJD1nv03uHuCR0S/FpLmDM+REEh2PAXbvJIMkBJJ+2KP+7oWwU95/pclnEXE/
         | 
| 22 | 
            -
              e0qKZkVsaszihkvh1loxlKhU/sV0Sjo+LJ/fM7SR1a9WzSw1c1C/5Twjmq6jnaLG
         | 
| 23 | 
            -
              ZGECAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGhf
         | 
| 24 | 
            -
              2WxIO89iFR2KfqyyXeWlUsBMMA0GCSqGSIb3DQEBBQUAA4IBAQAyvET0KFjr4Ars
         | 
| 25 | 
            -
              HvOFhZOer5jWTfGDUcKB8oOfLhbs7PANVNv0BARxgH0Dj95kTcIfSvQLWfv5OmqC
         | 
| 26 | 
            -
              AT3P6hPV6WbRCJOGPy0jeZcKWgPepl8vqnBciqzB8beBXmYmEe097MNvnlZptqU5
         | 
| 27 | 
            -
              If5GWrjlRoeYpRDNpMpaN4UFxsb/I4MGYvbnrEVc6Ev1ztgK5Kci8oYcINjUhCls
         | 
| 28 | 
            -
              EOmi6kiwQNdHUW0XLqwGanEip196lyE5IHRylQ5UiwYI0T4hDSc9f0SE+dzENdFw
         | 
| 29 | 
            -
              doMOs6odERAAmX+M7PQ4i3Zvs+Jv9SazZBcl8+sohZL3I5A1fkNQXts1hV6TObce
         | 
| 30 | 
            -
              T6VhSPds
         | 
| 31 | 
            -
              -----END CERTIFICATE-----
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            date: 2009-03-15 00:00:00 -07:00
         | 
| 34 | 
            -
            default_executable: 
         | 
| 35 | 
            -
            dependencies: 
         | 
| 36 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2017-04-20 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 14 | 
             
              name: net-ssh
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: 2.0.1
         | 
| 38 20 | 
             
              type: :runtime
         | 
| 39 | 
            -
               | 
| 40 | 
            -
              version_requirements: !ruby/object:Gem::Requirement | 
| 41 | 
            -
                requirements: | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 42 24 | 
             
                - - ">="
         | 
| 43 | 
            -
                  - !ruby/object:Gem::Version | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 44 26 | 
             
                    version: 2.0.1
         | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
               | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rake
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 48 34 | 
             
              type: :development
         | 
| 49 | 
            -
               | 
| 50 | 
            -
              version_requirements: !ruby/object:Gem::Requirement | 
| 51 | 
            -
                requirements: | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 52 38 | 
             
                - - ">="
         | 
| 53 | 
            -
                  - !ruby/object:Gem::Version | 
| 54 | 
            -
                    version:  | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            description: A ruby module to provide a simple send/expect interface over SSH with
         | 
| 42 | 
            +
              an API almost identical to Net::Telnet. Ideally it should be a drop in replacement.
         | 
| 43 | 
            +
              Please see Net::Telnet for main documentation (included with ruby stdlib).
         | 
| 44 | 
            +
            email:
         | 
| 45 | 
            +
            - sean@duke.edu
         | 
| 59 46 | 
             
            executables: []
         | 
| 60 | 
            -
             | 
| 61 47 | 
             
            extensions: []
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            extra_rdoc_files: 
         | 
| 64 | 
            -
            - History.txt
         | 
| 65 | 
            -
            - Manifest.txt
         | 
| 48 | 
            +
            extra_rdoc_files:
         | 
| 66 49 | 
             
            - README.txt
         | 
| 67 | 
            -
            - Todo.txt
         | 
| 68 | 
            -
            files: 
         | 
| 69 50 | 
             
            - History.txt
         | 
| 70 | 
            -
             | 
| 51 | 
            +
            files:
         | 
| 52 | 
            +
            - ".gitignore"
         | 
| 53 | 
            +
            - ".yardopts"
         | 
| 54 | 
            +
            - Gemfile
         | 
| 55 | 
            +
            - History.txt
         | 
| 71 56 | 
             
            - README.txt
         | 
| 72 57 | 
             
            - Rakefile
         | 
| 73 58 | 
             
            - Todo.txt
         | 
| @@ -76,33 +61,31 @@ files: | |
| 76 61 | 
             
            - examples/get_hostname.rb
         | 
| 77 62 | 
             
            - examples/non_standard_shell.rb
         | 
| 78 63 | 
             
            - lib/net/ssh/telnet.rb
         | 
| 64 | 
            +
            - lib/net/ssh/telnet/version.rb
         | 
| 65 | 
            +
            - net-ssh-telnet.gemspec
         | 
| 79 66 | 
             
            - test/test_net-ssh-telnet.rb
         | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 67 | 
            +
            homepage: https://github.com/duke-automation/net-ssh-telnet
         | 
| 68 | 
            +
            licenses:
         | 
| 69 | 
            +
            - MIT
         | 
| 70 | 
            +
            metadata: {}
         | 
| 82 71 | 
             
            post_install_message: 
         | 
| 83 | 
            -
            rdoc_options: 
         | 
| 84 | 
            -
             | 
| 85 | 
            -
            - README.txt
         | 
| 86 | 
            -
            require_paths: 
         | 
| 72 | 
            +
            rdoc_options: []
         | 
| 73 | 
            +
            require_paths:
         | 
| 87 74 | 
             
            - lib
         | 
| 88 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 89 | 
            -
              requirements: | 
| 75 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 76 | 
            +
              requirements:
         | 
| 90 77 | 
             
              - - ">="
         | 
| 91 | 
            -
                - !ruby/object:Gem::Version | 
| 92 | 
            -
                  version:  | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
              requirements: 
         | 
| 78 | 
            +
                - !ruby/object:Gem::Version
         | 
| 79 | 
            +
                  version: '0'
         | 
| 80 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 81 | 
            +
              requirements:
         | 
| 96 82 | 
             
              - - ">="
         | 
| 97 | 
            -
                - !ruby/object:Gem::Version | 
| 98 | 
            -
                  version:  | 
| 99 | 
            -
              version: 
         | 
| 83 | 
            +
                - !ruby/object:Gem::Version
         | 
| 84 | 
            +
                  version: '0'
         | 
| 100 85 | 
             
            requirements: []
         | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
            rubygems_version: 1.2.0
         | 
| 86 | 
            +
            rubyforge_project: 
         | 
| 87 | 
            +
            rubygems_version: 2.5.1
         | 
| 104 88 | 
             
            signing_key: 
         | 
| 105 | 
            -
            specification_version:  | 
| 106 | 
            -
            summary:  | 
| 107 | 
            -
            test_files: 
         | 
| 108 | 
            -
            - test/test_net-ssh-telnet.rb
         | 
| 89 | 
            +
            specification_version: 4
         | 
| 90 | 
            +
            summary: Provides Net::Telnet API for SSH connections
         | 
| 91 | 
            +
            test_files: []
         | 
    
        data.tar.gz.sig
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            "�4��JWy�,���]�<^����F~'�OI�\#_�'��ս��Y&M�L�)���Cޟ{����%��*�~�=��z8��g�K��G*�4�cM����(�Й���x|��8���&�Dÿ��?��ɗf�P�kyGX�!	��,�$oۚ�#�ݯ���w�|�
         | 
    
        data/Manifest.txt
    DELETED
    
    
    
        metadata.gz.sig
    DELETED
    
    | Binary file |