[前][次][番号順一覧][スレッド一覧]

ruby-changes:35150

From: hsbt <ko1@a...>
Date: Thu, 21 Aug 2014 12:41:01 +0900 (JST)
Subject: [ruby-changes:35150] hsbt:r47232 (trunk): * lib/net/imap.rb: split executable code into sample directory.

hsbt	2014-08-21 12:40:42 +0900 (Thu, 21 Aug 2014)

  New Revision: 47232

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47232

  Log:
    * lib/net/imap.rb: split executable code into sample directory.
    * sample/net-imap.rb: ditto.

  Added files:
    trunk/sample/net-imap.rb
  Modified files:
    trunk/ChangeLog
    trunk/lib/net/imap.rb
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 47231)
+++ ChangeLog	(revision 47232)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Thu Aug 21 12:40:22 2014  SHIBATA Hiroshi  <shibata.hiroshi@g...>
+
+	* lib/net/imap.rb: split executable code into sample directory.
+	* sample/net-imap.rb: ditto.
+
 Thu Aug 21 12:23:56 2014  SHIBATA Hiroshi  <shibata.hiroshi@g...>
 
 	* lib/net/imap.rb: removed commented-out code.
Index: sample/net-imap.rb
===================================================================
--- sample/net-imap.rb	(revision 0)
+++ sample/net-imap.rb	(revision 47232)
@@ -0,0 +1,167 @@ https://github.com/ruby/ruby/blob/trunk/sample/net-imap.rb#L1
+require 'net/imap'
+require "getoptlong"
+
+$stdout.sync = true
+$port = nil
+$user = ENV["USER"] || ENV["LOGNAME"]
+$auth = "login"
+$ssl = false
+$starttls = false
+
+def usage
+  <<EOF
+usage: #{$0} [options] <host>
+
+  --help                        print this message
+  --port=PORT                   specifies port
+  --user=USER                   specifies user
+  --auth=AUTH                   specifies auth type
+  --starttls                    use starttls
+  --ssl                         use ssl
+EOF
+end
+
+begin
+  require 'io/console'
+rescue LoadError
+  def _noecho(&block)
+    system("stty", "-echo")
+    begin
+      yield STDIN
+    ensure
+      system("stty", "echo")
+    end
+  end
+else
+  def _noecho(&block)
+    STDIN.noecho(&block)
+  end
+end
+
+def get_password
+  print "password: "
+  begin
+    return _noecho(&:gets).chomp
+  ensure
+    puts
+  end
+end
+
+def get_command
+  printf("%s@%s> ", $user, $host)
+  if line = gets
+    return line.strip.split(/\s+/)
+  else
+    return nil
+  end
+end
+
+parser = GetoptLong.new
+parser.set_options(['--debug', GetoptLong::NO_ARGUMENT],
+  ['--help', GetoptLong::NO_ARGUMENT],
+  ['--port', GetoptLong::REQUIRED_ARGUMENT],
+  ['--user', GetoptLong::REQUIRED_ARGUMENT],
+  ['--auth', GetoptLong::REQUIRED_ARGUMENT],
+  ['--starttls', GetoptLong::NO_ARGUMENT],
+  ['--ssl', GetoptLong::NO_ARGUMENT])
+begin
+  parser.each_option do |name, arg|
+    case name
+    when "--port"
+      $port = arg
+    when "--user"
+      $user = arg
+    when "--auth"
+      $auth = arg
+    when "--ssl"
+      $ssl = true
+    when "--starttls"
+      $starttls = true
+    when "--debug"
+      Net::IMAP.debug = true
+    when "--help"
+      usage
+      exit
+    end
+  end
+rescue
+  abort usage
+end
+
+$host = ARGV.shift
+unless $host
+  abort usage
+end
+
+imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
+begin
+  imap.starttls if $starttls
+  class << password = method(:get_password)
+    alias to_str call
+  end
+  imap.authenticate($auth, $user, password)
+  while true
+    cmd, *args = get_command
+    break unless cmd
+    begin
+      case cmd
+      when "list"
+        for mbox in imap.list("", args[0] || "*")
+          if mbox.attr.include?(Net::IMAP::NOSELECT)
+            prefix = "!"
+          elsif mbox.attr.include?(Net::IMAP::MARKED)
+            prefix = "*"
+          else
+            prefix = " "
+          end
+          print prefix, mbox.name, "\n"
+        end
+      when "select"
+        imap.select(args[0] || "inbox")
+        print "ok\n"
+      when "close"
+        imap.close
+        print "ok\n"
+      when "summary"
+        unless messages = imap.responses["EXISTS"][-1]
+          puts "not selected"
+          next
+        end
+        if messages > 0
+          for data in imap.fetch(1..-1, ["ENVELOPE"])
+            print data.seqno, ": ", data.attr["ENVELOPE"].subject, "\n"
+          end
+        else
+          puts "no message"
+        end
+      when "fetch"
+        if args[0]
+          data = imap.fetch(args[0].to_i, ["RFC822.HEADER", "RFC822.TEXT"])[0]
+          puts data.attr["RFC822.HEADER"]
+          puts data.attr["RFC822.TEXT"]
+        else
+          puts "missing argument"
+        end
+      when "logout", "exit", "quit"
+        break
+      when "help", "?"
+        print <<EOF
+list [pattern]                  list mailboxes
+select [mailbox]                select mailbox
+close                           close mailbox
+summary                         display summary
+fetch [msgno]                   display message
+logout                          logout
+help, ?                         display help message
+EOF
+      else
+        print "unknown command: ", cmd, "\n"
+      end
+    rescue Net::IMAP::Error
+      puts $!
+    end
+  end
+ensure
+  imap.logout
+  imap.disconnect
+end
Index: lib/net/imap.rb
===================================================================
--- lib/net/imap.rb	(revision 47231)
+++ lib/net/imap.rb	(revision 47232)
@@ -3576,173 +3576,3 @@ module Net https://github.com/ruby/ruby/blob/trunk/lib/net/imap.rb#L3576
     end
   end
 end
-
-if __FILE__ == $0
-  # :enddoc:
-  require "getoptlong"
-
-  $stdout.sync = true
-  $port = nil
-  $user = ENV["USER"] || ENV["LOGNAME"]
-  $auth = "login"
-  $ssl = false
-  $starttls = false
-
-  def usage
-    <<EOF
-usage: #{$0} [options] <host>
-
-  --help                        print this message
-  --port=PORT                   specifies port
-  --user=USER                   specifies user
-  --auth=AUTH                   specifies auth type
-  --starttls                    use starttls
-  --ssl                         use ssl
-EOF
-  end
-
-  begin
-    require 'io/console'
-  rescue LoadError
-    def _noecho(&block)
-      system("stty", "-echo")
-      begin
-        yield STDIN
-      ensure
-        system("stty", "echo")
-      end
-    end
-  else
-    def _noecho(&block)
-      STDIN.noecho(&block)
-    end
-  end
-
-  def get_password
-    print "password: "
-    begin
-      return _noecho(&:gets).chomp
-    ensure
-      puts
-    end
-  end
-
-  def get_command
-    printf("%s@%s> ", $user, $host)
-    if line = gets
-      return line.strip.split(/\s+/)
-    else
-      return nil
-    end
-  end
-
-  parser = GetoptLong.new
-  parser.set_options(['--debug', GetoptLong::NO_ARGUMENT],
-                     ['--help', GetoptLong::NO_ARGUMENT],
-                     ['--port', GetoptLong::REQUIRED_ARGUMENT],
-                     ['--user', GetoptLong::REQUIRED_ARGUMENT],
-                     ['--auth', GetoptLong::REQUIRED_ARGUMENT],
-                     ['--starttls', GetoptLong::NO_ARGUMENT],
-                     ['--ssl', GetoptLong::NO_ARGUMENT])
-  begin
-    parser.each_option do |name, arg|
-      case name
-      when "--port"
-        $port = arg
-      when "--user"
-        $user = arg
-      when "--auth"
-        $auth = arg
-      when "--ssl"
-        $ssl = true
-      when "--starttls"
-        $starttls = true
-      when "--debug"
-        Net::IMAP.debug = true
-      when "--help"
-        usage
-        exit
-      end
-    end
-  rescue
-    abort usage
-  end
-
-  $host = ARGV.shift
-  unless $host
-    abort usage
-  end
-
-  imap = Net::IMAP.new($host, :port => $port, :ssl => $ssl)
-  begin
-    imap.starttls if $starttls
-    class << password = method(:get_password)
-      alias to_str call
-    end
-    imap.authenticate($auth, $user, password)
-    while true
-      cmd, *args = get_command
-      break unless cmd
-      begin
-        case cmd
-        when "list"
-          for mbox in imap.list("", args[0] || "*")
-            if mbox.attr.include?(Net::IMAP::NOSELECT)
-              prefix = "!"
-            elsif mbox.attr.include?(Net::IMAP::MARKED)
-              prefix = "*"
-            else
-              prefix = " "
-            end
-            print prefix, mbox.name, "\n"
-          end
-        when "select"
-          imap.select(args[0] || "inbox")
-          print "ok\n"
-        when "close"
-          imap.close
-          print "ok\n"
-        when "summary"
-          unless messages = imap.responses["EXISTS"][-1]
-            puts "not selected"
-            next
-          end
-          if messages > 0
-            for data in imap.fetch(1..-1, ["ENVELOPE"])
-              print data.seqno, ": ", data.attr["ENVELOPE"].subject, "\n"
-            end
-          else
-            puts "no message"
-          end
-        when "fetch"
-          if args[0]
-            data = imap.fetch(args[0].to_i, ["RFC822.HEADER", "RFC822.TEXT"])[0]
-            puts data.attr["RFC822.HEADER"]
-            puts data.attr["RFC822.TEXT"]
-          else
-            puts "missing argument"
-          end
-        when "logout", "exit", "quit"
-          break
-        when "help", "?"
-          print <<EOF
-list [pattern]                  list mailboxes
-select [mailbox]                select mailbox
-close                           close mailbox
-summary                         display summary
-fetch [msgno]                   display message
-logout                          logout
-help, ?                         display help message
-EOF
-        else
-          print "unknown command: ", cmd, "\n"
-        end
-      rescue Net::IMAP::Error
-        puts $!
-      end
-    end
-  ensure
-    imap.logout
-    imap.disconnect
-  end
-end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]