るりまサーチ (Ruby 2.2.0)

最速Rubyリファレンスマニュアル検索!
44件ヒット [1-44件を表示] (0.064秒)

別のキーワード

  1. string []=
  2. string []
  3. string slice
  4. string slice!
  5. string gsub

検索結果

String#ord -> Integer (117340.0)

文字列の最初の文字の文字コードを整数で返します。

文字列の最初の文字の文字コードを整数で返します。

self が空文字列のときは例外を発生します。

@return 文字コードを表す整数
@raise ArgumentError self の長さが 0 のとき発生

//emlist[例][ruby]{
p "a".ord # => 97
//}

@see Integer#chr, String#chr

String#chr -> String (63394.0)

self の最初の文字だけを含む文字列を返します。

self の最初の文字だけを含む文字列を返します。

//emlist[例][ruby]{
a = "abcde"
a.chr #=> "a"
//}

Ruby 1.9 で IO#getc の戻り値が Integer から String を返すように変更になりました。
Ruby 1.8 以前と1.9以降の互換性を保つために String#chr が存在します。

例:
# ruby 1.8 系では STDIN.getc が 116 を返すため Integer#chr が呼び出される
$ echo test | ruby -e "p STDIN.getc.chr" # => ...

Integer#ord -> Integer (54412.0)

自身を返します。

自身を返します。

//emlist[][ruby]{
10.ord #=> 10
# String#ord
?a.ord #=> 97
//}

@see String#ord

Readline.basic_word_break_characters=(string) (18670.0)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列 string を指定します。

ユーザの入力の補完を行う際、
単語の区切りを示す複数の文字で構成される文字列 string を指定します。

GNU Readline のデフォルト値は、Bash の補完処理で使用している文字列
" \t\n\"\\'`@$><=;|&{(" (スペースを含む) になっています。

@param string 文字列を指定します。

@raise NotImplementedError サポートしていない環境で発生します。

@see Readline.basic_word_break_characters

Readline.completer_word_break_characters=(string) (18670.0)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列 string を指定します。 Readline.basic_word_break_characters= との違いは、 GNU Readline の rl_complete_internal 関数で使用されることです。

ユーザの入力の補完を行う際、
単語の区切りを示す複数の文字で構成される文字列 string を指定します。
Readline.basic_word_break_characters= との違いは、
GNU Readline の rl_complete_internal 関数で使用されることです。

GNU Readline のデフォルトの値は、
Readline.basic_word_break_characters と同じです。

@param string 文字列を指定します。

@raise NotImplementedError サポートしていない環境で発生します。

@see Re...

絞り込み条件を変える

OptionParser#order(*args) -> [String] (18613.0)

与えられた argv を順番にパースします。 オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。 argv からオプションを取り除いたものを返します。

与えられた argv を順番にパースします。
オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
argv からオプションを取り除いたものを返します。

ブロックが与えられている場合は、パースを中断せずに引数をブロックに渡してブロックを評価し、
パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができま
せん。-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定します。

@param a...

OptionParser#order(*args) {|s| ...} -> [String] (18613.0)

与えられた argv を順番にパースします。 オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。 argv からオプションを取り除いたものを返します。

与えられた argv を順番にパースします。
オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
argv からオプションを取り除いたものを返します。

ブロックが与えられている場合は、パースを中断せずに引数をブロックに渡してブロックを評価し、
パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができま
せん。-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定します。

@param a...

OptionParser#order(argv) -> [String] (18613.0)

与えられた argv を順番にパースします。 オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。 argv からオプションを取り除いたものを返します。

与えられた argv を順番にパースします。
オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
argv からオプションを取り除いたものを返します。

ブロックが与えられている場合は、パースを中断せずに引数をブロックに渡してブロックを評価し、
パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができま
せん。-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定します。

@param a...

OptionParser#order(argv) {|s| ...} -> [String] (18613.0)

与えられた argv を順番にパースします。 オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。 argv からオプションを取り除いたものを返します。

与えられた argv を順番にパースします。
オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
argv からオプションを取り除いたものを返します。

ブロックが与えられている場合は、パースを中断せずに引数をブロックに渡してブロックを評価し、
パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができま
せん。-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定します。

@param a...

CGI::HtmlExtension#password_field(attributes) -> String (18607.0)

タイプが password である input 要素を生成します。

タイプが password である input 要素を生成します。

@param attributes 属性をハッシュで指定します。

例:
password_field({ "NAME" => "name", "VALUE" => "value" })
# <INPUT TYPE="password" NAME="name" VALUE="value">

絞り込み条件を変える

CGI::HtmlExtension#password_field(name = "", value = nil, size = 40, maxlength = nil) -> String (18607.0)

タイプが password である input 要素を生成します。

タイプが password である input 要素を生成します。

@param name name 属性の値を指定します。

@param value 属性の値を指定します。

@param size size 属性の値を指定します。

@param maxlength maxlength 属性の値を指定します。

例:
password_field("name")
# <INPUT TYPE="password" NAME="name" SIZE="40">

password_field("name", "value")
# <INPUT TYPE="passw...

Kernel$$INPUT_RECORD_SEPARATOR -> String | nil (18607.0)

$/ の別名

$/ の別名

require "English"

$INPUT_RECORD_SEPARATOR = '|'
array = []
while line = DATA.gets
array << line
end
p array #=> ["ugo|", "ego|", "fogo\n"]

__END__
ugo|ego|fogo

OptionParser#order!(argv = self.default_argv) -> [String] (18607.0)

与えられた argv を順番に破壊的にパースします。 argv からオプションがすべて取り除かれます。 argv を返します。

与えられた argv を順番に破壊的にパースします。
argv からオプションがすべて取り除かれます。
argv を返します。

オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
ブロックが与えられている場合は、パースを中断せずに
引数をブロックに渡してブロックを評価し、パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができません。
-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定...

OptionParser#order!(argv = self.default_argv) {|s| ...} -> [String] (18607.0)

与えられた argv を順番に破壊的にパースします。 argv からオプションがすべて取り除かれます。 argv を返します。

与えられた argv を順番に破壊的にパースします。
argv からオプションがすべて取り除かれます。
argv を返します。

オプションではないコマンドの引数(下の例で言うと somefile)に出会うと、パースを中断します。
ブロックが与えられている場合は、パースを中断せずに
引数をブロックに渡してブロックを評価し、パースを継続します。argv を返します。

下の例で言うと、コマンドの引数 somefile よりも後ろにオプションを置くことができません。
-b もコマンドのオプションではない引数として扱われてしまいます。

@param argv パースしたい引数を文字列の配列で指定...

OptionParser::Arguable#order! -> [String] (18607.0)

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#order! を参照して下さい。

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。
OptionParser#order! を参照して下さい。

@raise OptionParser::ParseError 自身のパースに失敗した場合、発生します。
実際は OptionParser::ParseError のサブク
ラスの例外になります。

//emlist[][ruby]{
require 'optparse'

o = nil
ARGV.options.on('-...

絞り込み条件を変える

OptionParser::Arguable#order! {|s| ... } -> [String] (18607.0)

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。 OptionParser#order! を参照して下さい。

自身を破壊的にパースし、パースされずに残った引数を文字列の配列として返します。
OptionParser#order! を参照して下さい。

@raise OptionParser::ParseError 自身のパースに失敗した場合、発生します。
実際は OptionParser::ParseError のサブク
ラスの例外になります。

//emlist[][ruby]{
require 'optparse'

o = nil
ARGV.options.on('-...

Shellwords.#shellwords(line) -> [String] (18607.0)

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、 単語 (文字列) の配列を返します。

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、
単語 (文字列) の配列を返します。

空白、シングルクォート (')、ダブルクォート (")、バックスラッシュ (\)
を解釈します。

@param line 分割の対象となる文字列を指定します。
@return 分割結果の各文字列を要素とする配列を返します。
@raise ArgumentError 引数の中に対でないシングルクォートまたはダブル
クォートが現れた場合に発生します。

例:
require 'shellwords'

p Shellwords.shellword...

Readline.basic_word_break_characters -> String (18604.0)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成される文字列を取得します。

ユーザの入力の補完を行う際、
単語の区切りを示す複数の文字で構成される文字列を取得します。

@raise NotImplementedError サポートしていない環境で発生します。

@see Readline.basic_word_break_characters=

Readline.completer_word_break_characters -> String (18604.0)

ユーザの入力の補完を行う際、 単語の区切りを示す複数の文字で構成された文字列を取得します。 Readline.basic_word_break_characters との違いは、 GNU Readline の rl_complete_internal 関数で使用されることです。

ユーザの入力の補完を行う際、
単語の区切りを示す複数の文字で構成された文字列を取得します。
Readline.basic_word_break_characters との違いは、
GNU Readline の rl_complete_internal 関数で使用されることです。

@raise NotImplementedError サポートしていない環境で発生します。

@see Readline.completer_word_break_characters=

Shell#record_separator -> String (18604.0)

@todo

@todo

絞り込み条件を変える

Shell.default_record_separator -> String (18604.0)

執筆者募集

執筆者募集

Shell で用いられる入力レコードセパレータを表す文字列を設定および参照します。
なにも指定しない場合は$/ の値が用いられます。

@param rs Shell で用いられる入力レコードセパレータを表す文字列を指定します。

URI::Generic#password -> String | nil (18604.0)

自身の password を文字列で返します。設定されていない場合は nil を返します。

自身の password を文字列で返します。設定されていない場合は nil を返します。

RDoc::Markup#add_word_pair(start, stop, name) -> () (18319.0)

start と stop ではさまれる文字列(例. *bold*)をフォーマットの対象にしま す。

start と stop ではさまれる文字列(例. *bold*)をフォーマットの対象にしま
す。

@param start 開始となる文字列を指定します。

@param stop 終了となる文字列を指定します。start と同じ文字列にする事も
可能です。

@param name SM::ToHtml などのフォーマッタに識別させる時の名前を
Symbol で指定します。

@raise RuntimeError start に "<" で始まる文字列を指定した場合に発生します。

例:

require 'rdoc/markup/...

Shell.default_record_separator=(rs) (18304.0)

執筆者募集

執筆者募集

Shell で用いられる入力レコードセパレータを表す文字列を設定および参照します。
なにも指定しない場合は$/ の値が用いられます。

@param rs Shell で用いられる入力レコードセパレータを表す文字列を指定します。

shellwords (18055.0)

UNIX Bourne シェルの単語分割規則に従った文字列分割機能と文字列エスケープ 機能を提供します。

UNIX Bourne シェルの単語分割規則に従った文字列分割機能と文字列エスケープ
機能を提供します。

Shellwords モジュールは、空白区切りの単語分割を行う shellsplit、
文字列をエスケープする shellescape、文字列エスケープを文字列リストに
対して適用する shelljoin の3つのモジュール関数を提供します。

また、shellwords ライブラリを require すると、組み込みクラス String
と Array が拡張され、これらのモジュール関数と同じ機能が
String#shellsplit, String#shellescape, Arra...

絞り込み条件を変える

Kernel$$OUTPUT_RECORD_SEPARATOR -> String | nil (9607.0)

$\ の別名

$\ の別名

require "English"

print "hoge\nhuga\n"
$OUTPUT_RECORD_SEPARATOR = "\n"
print "fuge"
print "ugo"
# end of sample.rb

ruby sample.rb
hoge
huga
fuge
ugo

Kernel$$RS -> String | nil (9307.0)

$/ の別名

$/ の別名

require "English"

$INPUT_RECORD_SEPARATOR = '|'
array = []
while line = DATA.gets
array << line
end
p array #=> ["ugo|", "ego|", "fogo\n"]

__END__
ugo|ego|fogo

Shellwords.#shellsplit(line) -> [String] (9307.0)

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、 単語 (文字列) の配列を返します。

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、
単語 (文字列) の配列を返します。

空白、シングルクォート (')、ダブルクォート (")、バックスラッシュ (\)
を解釈します。

@param line 分割の対象となる文字列を指定します。
@return 分割結果の各文字列を要素とする配列を返します。
@raise ArgumentError 引数の中に対でないシングルクォートまたはダブル
クォートが現れた場合に発生します。

例:
require 'shellwords'

p Shellwords.shellword...

Shellwords.#shellescape(str) -> String (9304.0)

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

@param str エスケープの対象となる文字列を指定します。
@return エスケープされた文字列を返します。

例:
require 'shellwords'

pattern = 'Jan 15'
puts "grep #{Shellwords.shellescape(pattern)} file"
# => grep Jan\ 15 file

Shellwords.#shelljoin(array) -> String (9304.0)

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に
使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド
ライン文字列を生成します。

個々の配列要素に対するエスケープには、Shellwords.#shellescape と
同じ規則が適用されます。

@param array エスケープ対象の文字列を要素とする配列を指定します。
@return エスケープ結果を連結した文字列を返します。

例:
require 'shellwords'

pattern = 'Jan 15'
file = 'file nam...

絞り込み条件を変える

Shellwords.escape(str) -> String (9304.0)

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

文字列を Bourne シェルのコマンドライン中で安全に使えるようにエスケープします。

このメソッドは、Shellwords.#shellescape の別名です。

@param str エスケープの対象となる文字列を指定します。
@return エスケープされた文字列を返します。

Shellwords.join(array) -> String (9304.0)

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。

配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に
使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド
ライン文字列を生成します。

このメソッドは、Shellwords.#shelljoin の別名です。

@param array エスケープ対象の文字列を要素とする配列を指定します。
@return エスケープ結果を連結した文字列を返します。

Shellwords.split(line) -> [String] (9304.0)

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、 単語 (文字列) の配列を返します。

Bourne シェルの単語分割規則に従った空白区切りの単語分割を行い、
単語 (文字列) の配列を返します。

このメソッドは、Shellwords.#shellsplit の別名です。

@param line 分割の対象となる文字列を指定します。
@return 分割結果の各文字列を要素とする配列を返します。
@raise ArgumentError 引数の中に対でないシングルクォートまたはダブル
クォートが現れた場合に発生します。

StringIO#ungetc(str_or_int) -> nil (9091.0)

文字列か整数で指定された str_or_int を自身に書き戻します。 nil を返します。

文字列か整数で指定された str_or_int を自身に書き戻します。
nil を返します。

何回でも書き戻すことが可能です。
現在位置が自身のサイズよりも大きい場合は、自身をリサイズしてから、ch を書き戻します。

@param str_or_int 書き戻したい文字を文字列か整数で指定します。複数の文
字を書き戻す事もできます。

@raise IOError 自身が読み込み可能でない時に発生します。

//emlist[例][ruby]{
require "stringio"
s = StringIO.new("hoge")
s.pos = 1
s...

Net::Telnet#login(opts, password=nil) -> String (607.0)

指定したユーザ名とパスワードでログインします。

指定したユーザ名とパスワードでログインします。

opts が文字列である場合は、 それをユーザ名、passwordをパスワードと
してログインします。
opts がハッシュである場合には、"Name" と "Password" をキーとする文字列を
ユーザ名、パスワードとしてログインします。
また、opts がハッシュの場合には以下のオプションが利用できます。

"LoginPrompt" ログインプロンプトを正規表現で指定します。
デフォルト値は /[Ll]ogin[: ]*\z/n です。

"PasswordPrompt" パスワード入力プロンプトを正規表現で指定します。
デフォルト値...

絞り込み条件を変える

Net::Telnet#login(opts, password=nil) {|mesg| ...} -> String (607.0)

指定したユーザ名とパスワードでログインします。

指定したユーザ名とパスワードでログインします。

opts が文字列である場合は、 それをユーザ名、passwordをパスワードと
してログインします。
opts がハッシュである場合には、"Name" と "Password" をキーとする文字列を
ユーザ名、パスワードとしてログインします。
また、opts がハッシュの場合には以下のオプションが利用できます。

"LoginPrompt" ログインプロンプトを正規表現で指定します。
デフォルト値は /[Ll]ogin[: ]*\z/n です。

"PasswordPrompt" パスワード入力プロンプトを正規表現で指定します。
デフォルト値...

Net::HTTPHeader#basic_auth(account, password) -> [String] (604.0)

Authorization: ヘッダを BASIC 認証用にセットします。

Authorization: ヘッダを BASIC 認証用にセットします。

@param account アカウント名を文字列で与えます。
@param password パスワードを文字列で与えます。

//emlist[例][ruby]{
require 'net/http'

uri = URI.parse('http://www.example.com/index.html')
req = Net::HTTP::Get.new(uri.request_uri)
req.basic_auth("user", "pass") # => ["Basic dXNlcjpwYXNz"]
//}...

Net::HTTPHeader#proxy_basic_auth(account, password) -> [String] (604.0)

Proxy 認証のために Proxy-Authorization: ヘッダをセットします。

Proxy 認証のために Proxy-Authorization: ヘッダをセットします。

@param account アカウント名を文字列で与えます。
@param password パスワードを文字列で与えます。

//emlist[例][ruby]{
require 'net/http'

uri = URI.parse('http://www.example.com/index.html')
req = Net::HTTP::Get.new(uri.request_uri)
req.proxy_basic_auth("account", "password") # => ["Ba...

Integer#chr -> String (343.0)

self を文字コードとして見た時に、引数で与えたエンコーディング encoding に対応する文字を返します。

self を文字コードとして見た時に、引数で与えたエンコーディング encoding に対応する文字を返します。

//emlist[][ruby]{
p 65.chr
# => "A"
p 12354.chr
# => `chr': 12354 out of char range (RangeError)

p 12354.chr(Encoding::UTF_8)
# => "あ"
p 12354.chr(Encoding::EUC_JP)
# => RangeError: invalid codepoint 0x3042 in EUC-JP
//}

引数無しで呼ばれた場合は self ...

Integer#chr(encoding) -> String (343.0)

self を文字コードとして見た時に、引数で与えたエンコーディング encoding に対応する文字を返します。

self を文字コードとして見た時に、引数で与えたエンコーディング encoding に対応する文字を返します。

//emlist[][ruby]{
p 65.chr
# => "A"
p 12354.chr
# => `chr': 12354 out of char range (RangeError)

p 12354.chr(Encoding::UTF_8)
# => "あ"
p 12354.chr(Encoding::EUC_JP)
# => RangeError: invalid codepoint 0x3042 in EUC-JP
//}

引数無しで呼ばれた場合は self ...

絞り込み条件を変える

ruby 1.9 feature (325.0)

ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。

ruby 1.9 feature
ruby version 1.9.0 は開発版です。
以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。
1.9.1 以降は安定版です。
バグ修正がメインになります。

記号について(特に重要なものは大文字(主観))

* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
* [parser]: 文法の変更
* [regexp]: 正規表現の機能拡張
* [marshal]: Marshal ファイルのフォーマット変更
* ...

Abbrev.#abbrev(words, pattern = nil) -> Hash (319.0)

文字列の配列から一意に決まる短縮形を計算し、 短縮形をキー、元の文字列を値とするハッシュを返します。

文字列の配列から一意に決まる短縮形を計算し、
短縮形をキー、元の文字列を値とするハッシュを返します。

第二引数に正規表現を指定すると、words のうちそのパターンにマッチしたものから短縮形を計算します。
第二引数に文字列を指定すると、words のうちその文字列で始まるものから短縮形を計算します。

@param words 元となる文字列の配列。
@param pattern Regexp か String を指定します。

@return 短縮形をキー、元の文字列を値とするハッシュを返します。

require 'abbrev'

# words に同じ文字列が含まれ...

Net::SMTP.start(address, port = Net::SMTP.default_port, helo = &#39;localhost&#39;, user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) -> Net::SMTP (319.0)

新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。

新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。


以下と同じです。

require 'net/smtp'
Net::SMTP.new(address, port).start(helo, user, password, authtype)

このメソッドにブロックを与えた場合には、新しく作られた Net::SMTP オブジェクト
を引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。
ブロックを与えなかった場合には新しく作られた Net::SMTP オブジェクトが
返されます。この場合終了時に Net::SMTP#finish ...

Net::SMTP.start(address, port = Net::SMTP.default_port, helo = &#39;localhost&#39;, user = nil, password = nil, authtype = DEFAULT_AUTH_TYPE) {|smtp| .... } -> object (319.0)

新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。

新しい SMTP オブジェクトを生成し、サーバに接続し、セッションを開始します。


以下と同じです。

require 'net/smtp'
Net::SMTP.new(address, port).start(helo, user, password, authtype)

このメソッドにブロックを与えた場合には、新しく作られた Net::SMTP オブジェクト
を引数としてそのブロックを呼び、ブロック終了時に自動的に接続を閉じます。
ブロックを与えなかった場合には新しく作られた Net::SMTP オブジェクトが
返されます。この場合終了時に Net::SMTP#finish ...