summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/ext/pty/expect_sample.rb
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-29 04:06:12 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-29 04:06:12 +0000
commit11dbedfaad4a9a9521ece2198a8dc491678b1902 (patch)
tree4806dc0ff0c3827ecc40921838c4507340cfdb3a /ruby_1_8_6/ext/pty/expect_sample.rb
parent29e8d8b439b34c2a394407dc598fc01d14be0c20 (diff)
add tag v1_8_6_5001v1_8_6_5001
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/ext/pty/expect_sample.rb')
-rw-r--r--ruby_1_8_6/ext/pty/expect_sample.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/ruby_1_8_6/ext/pty/expect_sample.rb b/ruby_1_8_6/ext/pty/expect_sample.rb
new file mode 100644
index 0000000000..bf8a2352fe
--- /dev/null
+++ b/ruby_1_8_6/ext/pty/expect_sample.rb
@@ -0,0 +1,55 @@
+#
+# sample program of expect.rb
+#
+# by A. Ito
+#
+# This program reports the latest version of ruby interpreter
+# by connecting to ftp server at ruby-lang.org.
+#
+require 'pty'
+require 'expect'
+
+fnames = []
+PTY.spawn("ftp ftp.ruby-lang.org") do |r_f,w_f,pid|
+ w_f.sync = true
+
+ $expect_verbose = false
+
+ r_f.expect(/^Name.*: /) do
+ w_f.print "ftp\n"
+ end
+
+ if !ENV['USER'].nil?
+ username = ENV['USER']
+ elsif !ENV['LOGNAME'].nil?
+ username = ENV['LOGNAME']
+ else
+ username = 'guest'
+ end
+
+ r_f.expect('word:') do
+ w_f.print username+"@\n"
+ end
+ r_f.expect("> ") do
+ w_f.print "cd pub/ruby\n"
+ end
+ r_f.expect("> ") do
+ w_f.print "dir\n"
+ end
+
+ r_f.expect("> ") do |output|
+ for x in output[0].split("\n")
+ if x =~ /(ruby.*\.tar\.gz)/ then
+ fnames.push $1
+ end
+ end
+ end
+ begin
+ w_f.print "quit\n"
+ rescue
+ end
+end
+
+print "The latest ruby interpreter is "
+print fnames.sort.pop
+print "\n"