ライブラリ
クラス
- CSV (1)
- Dir (6)
- Exception (1)
- File (4)
-
Gem
:: Package :: TarReader (1) - IO (28)
-
OpenSSL
:: PKCS7 (1) - PStore (1)
- Socket (2)
- StringIO (6)
- Thread (16)
-
Thread
:: Mutex (3) - ThreadGroup (1)
- ThreadsWait (1)
- WIN32OLE (1)
-
Zlib
:: GzipReader (1)
モジュール
-
OpenSSL
:: ASN1 (1)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) -
NEWS for Ruby 2
. 1 . 0 (1) - Thread (1)
- add (1)
-
backtrace
_ locations (1) - connect (1)
-
connect
_ nonblock (1) - decode (1)
- fork (1)
- getc (1)
-
handle
_ interrupt (1) - join (2)
- link (1)
- name= (1)
-
next
_ wait (1) -
ole
_ get _ methods (1) - open (6)
-
pending
_ interrupt? (1) - pipe (8)
- popen (14)
- readbyte (1)
- readchar (2)
- readline (4)
- readlines (1)
- reopen (2)
-
report
_ on _ exception (2) -
report
_ on _ exception= (2) - rewind (1)
-
rinda
/ rinda (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 4 feature (1) - run (1)
- sleep (1)
- start (1)
- status (1)
- synchronize (1)
- transaction (1)
- ungetc (1)
- unlock (1)
- wakeup (1)
-
write
_ smime (1) - スレッド (1)
検索結果
先頭5件
-
Zlib
:: GzipReader . new(io) -> Zlib :: GzipReader (63712.0) -
io と関連付けられた GzipReader オブジェクトを作成します。
io と関連付けられた GzipReader オブジェクトを作成します。
GzipReader オブジェクトは io からデータを逐次リードして
解析/展開を行います。io には少なくとも、IO#read と
同じ動作をする read メソッドが定義されている必要があります。
@param io IO オブジェクト、もしくは少なくとも IO#read と同じ動作を
する read メソッドが定義されているオブジェクト
@raise Zlib::GzipFile::Error ヘッダーの解析に失敗した場合発生します。
require 'zlib'
File... -
Thread
. new(*arg) {|*arg| . . . } -> Thread (63658.0) -
スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。
スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。
@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。
@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。
注意:
例えば、以下のコードは間違いです。スレッドの実行が開始される前に
変数 i が書き変わる可能性があるからです。
for i in 1.... -
Thread
# raise(error _ type , message , traceback) -> () (63394.0) -
自身が表すスレッドで強制的に例外を発生させます。
自身が表すスレッドで強制的に例外を発生させます。
@param error_type Kernel.#raise を参照してください。
@param message Kernel.#raise を参照してください。
@param traceback Kernel.#raise を参照してください。
Thread.new {
sleep 1
Thread.main.raise "foobar"
}
begin
sleep
rescue
p $!, $@
end
=> #<RuntimeError: foobar>
[... -
CSV
. new(data , options = Hash . new) -> CSV (54733.0) -
このメソッドは CSV ファイルを読み込んだり、書き出したりするために String か IO のインスタンスをラップします。
このメソッドは CSV ファイルを読み込んだり、書き出したりするために
String か IO のインスタンスをラップします。
ラップされた文字列の先頭から読み込むことになります。
文字列に追記したい場合は CSV.generate を使用してください。
他の位置から処理したい場合はあらかじめそのように設定した StringIO を渡してください。
@param data String か IO のインスタンスを指定します。
String のインスタンスを指定した場合、CSV#string を使用して
後からデータを取り出すことが出来ます。... -
Dir
. new(path) -> Dir (54451.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
Dir
. new(path , encoding: Encoding . find("filesystem")) -> Dir (54451.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
File
. new(path , mode = "r" , perm = 0666) -> File (54376.0) -
path で指定されるファイルをオープンし、File オブジェクトを生成して 返します。
path で指定されるファイルをオープンし、File オブジェクトを生成して
返します。
path が整数の場合はファイルディスクリプタとして扱い、それに対応する
File オブジェクトを生成して返します。IO.open と同じです。
ブロックを指定して呼び出した場合は、File オブジェクトを引数として
ブロックを実行します。ブロックの実行が終了すると、ファイルは自動的に
クローズされます。ブロックの実行結果を返します。
@param path ファイルを文字列で指定します。整数を指定した場合はファイルディスクリプタとして扱います。
@param mode モードを文字列か定数の論理... -
IO
# readchar -> String (18373.0) -
IO ポートから 1 文字読み込んで返します。 EOF に到達した時には EOFError が発生します。
IO ポートから 1 文字読み込んで返します。
EOF に到達した時には EOFError が発生します。
テキスト読み込みメソッドとして動作します。
IO#getc との違いは EOF での振る舞いのみです。
@raise EOFError EOF に到達した時に発生します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
f = File.new("testfile")
p f.readchar #=> "い"
p f.readchar #=> "ろ"... -
IO
# readline(limit , chomp: false) -> String (18355.0) -
一行読み込んで、読み込みに成功した時にはその文字列を返します。 EOF に到達した時には EOFError が発生します。
一行読み込んで、読み込みに成功した時にはその文字列を返します。
EOF に到達した時には EOFError が発生します。
テキスト読み込みメソッドとして動作します。
読み込んだ文字列を変数 $_ にセットします。IO#gets との違いは EOF での振る舞いのみです。
limit で最大読み込みバイト数を指定します。ただしマルチバイト文字が途中で
切れないように余分に読み込む場合があります。
@param rs 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード... -
IO
# readline(rs = $ / , chomp: false) -> String (18355.0) -
一行読み込んで、読み込みに成功した時にはその文字列を返します。 EOF に到達した時には EOFError が発生します。
一行読み込んで、読み込みに成功した時にはその文字列を返します。
EOF に到達した時には EOFError が発生します。
テキスト読み込みメソッドとして動作します。
読み込んだ文字列を変数 $_ にセットします。IO#gets との違いは EOF での振る舞いのみです。
limit で最大読み込みバイト数を指定します。ただしマルチバイト文字が途中で
切れないように余分に読み込む場合があります。
@param rs 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード... -
IO
# readline(rs , limit , chomp: false) -> String (18355.0) -
一行読み込んで、読み込みに成功した時にはその文字列を返します。 EOF に到達した時には EOFError が発生します。
一行読み込んで、読み込みに成功した時にはその文字列を返します。
EOF に到達した時には EOFError が発生します。
テキスト読み込みメソッドとして動作します。
読み込んだ文字列を変数 $_ にセットします。IO#gets との違いは EOF での振る舞いのみです。
limit で最大読み込みバイト数を指定します。ただしマルチバイト文字が途中で
切れないように余分に読み込む場合があります。
@param rs 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード... -
StringIO
# readline(rs = $ / ) -> String (18355.0) -
自身から 1 行読み込んで、その文字列を返します。
自身から 1 行読み込んで、その文字列を返します。
文字列の終端に到達した時には、例外 EOFError を発生させます。
IO#readline と違い読み込んだ文字列を変数 $_ にセットしません。
@param rs 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード)。
@raise EOFError 文字列の終端に到達した時に発生します。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
//emlist[例][rub... -
StringIO
# readbyte -> Integer (18337.0) -
自身から 1 文字読み込んで、その文字に対応する整数を返します。
自身から 1 文字読み込んで、その文字に対応する整数を返します。
文字列の終端に到達した時には例外 EOFError を発生させます。
//emlist[例][ruby]{
require "stringio"
a = StringIO.new("hoge")
a.readbyte #=> 104
//}
@raise EOFError 文字列の終端に到達した時に発生します。 -
StringIO
# readchar -> String (18337.0) -
自身から 1 文字読み込んで、その文字に対応する String を返します。
自身から 1 文字読み込んで、その文字に対応する String を返します。
文字列の終端に到達した時には例外 EOFError を発生させます。
//emlist[例][ruby]{
require "stringio"
a = StringIO.new("hoge")
a.readchar #=> "h"
//}
@raise EOFError EOFに達した時発生する -
StringIO
# readlines(rs = $ / ) -> [String] (18337.0) -
自身からデータを全て読み込んで、その各行を要素としてもつ配列を返します。 既に文字列の終端に達していれば空配列 [] を返します。
自身からデータを全て読み込んで、その各行を要素としてもつ配列を返します。
既に文字列の終端に達していれば空配列 [] を返します。
@param rs 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード)。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
//emlist[例][ruby]{
require "stringio"
a = StringIO.new("hoge\nfoo\nbar\n")
a.readlines ... -
NEWS for Ruby 2
. 1 . 0 (18109.0) -
NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.1.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.0.0 以降の変更
=== 言語仕様の変更
* キーワード引数のデフォルト値が省略可能になりました。これらの「必須キーワード引数」は呼び出し時に明示的に与えなければなりません。
* 整数や小数のリテラルの末尾に'r','i','... -
Thread (18055.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (13123.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
1.6.8から1.8.0への変更点(まとめ)
* ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>))
* ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>))
* ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>))
* ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>))... -
ruby 1
. 6 feature (9973.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくなっ
ていま... -
ruby 1
. 8 . 4 feature (9541.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
ruby 1.8.4 feature
ruby 1.8.4 での ruby 1.8.3 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
# * カテゴリ
# * [ruby]: ruby インタプリタの変更
# * [api]: 拡張ライブラリ API
# * [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加され... -
Thread
# report _ on _ exception=(newstate) (9373.0) -
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトはスレッド作成時の Thread.report_on_exception です。
@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。
//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception # => true
a.run
# => #<Th... -
ThreadGroup
# add(thread) -> self (9373.0) -
スレッド thread が属するグループを自身に変更します。
スレッド thread が属するグループを自身に変更します。
@param thread 自身に加えたいスレッドを指定します。
@raise ThreadError 自身が freeze されているか enclose されている場合に、発生します。また引数 thread が属する ThreadGroup が freeze されているか enclose されている場合にも発生します。
//emlist[例][ruby]{
puts "Initial group is #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (9373.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
Thread
. fork(*arg) {|*arg| . . . } -> Thread (9355.0) -
スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。
スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。
基本的に Thread.new と同じですが、
new メソッドと違い initialize メソッドを呼びません。
@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。
@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。
注意:
例えば、以下のコー... -
Thread
. start(*arg) {|*arg| . . . } -> Thread (9355.0) -
スレッドを生成して、ブロックの評価を開始します。 生成したスレッドを返します。
スレッドを生成して、ブロックの評価を開始します。
生成したスレッドを返します。
基本的に Thread.new と同じですが、
new メソッドと違い initialize メソッドを呼びません。
@param arg 引数 arg はそのままブロックに渡されます。スレッドの開始と同時にその
スレッド固有のローカル変数に値を渡すために使用します。
@raise ThreadError 現在のスレッドが属する ThreadGroup が freeze されている場合に発生します。またブロックを与えられずに呼ばれた場合にも発生します。
注意:
例えば、以下のコー... -
Thread
. report _ on _ exception=(newstate) (9337.0) -
真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトは false です。
Thread.new { 1.times { raise } }
は $stderr に以下のように出力します:
#<Thread:...> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
2: from -e:1:in `block in <main>'
1: fr... -
Dir
. open(path) -> Dir (9151.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
Dir
. open(path) {|dir| . . . } -> object (9151.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
Dir
. open(path , encoding: Encoding . find("filesystem")) -> Dir (9151.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
Dir
. open(path , encoding: Encoding . find("filesystem")) {|dir| . . . } -> object (9151.0) -
path に対するディレクトリストリームをオープンして返します。
path に対するディレクトリストリームをオープンして返します。
ブロックを指定して呼び出した場合は、ディレクトリストリームを
引数としてブロックを実行します。ブロックの実行が終了すると、
ディレクトリは自動的にクローズされます。
ブロックの実行結果を返します。
@param path ディレクトリのパスを文字列で指定します。
@param encoding ディレクトリのエンコーディングを文字列か
Encoding オブジェクトで指定します。省略した場合は
ファイルシステムのエンコーディングと同じになります。
@rai... -
Thread
# status -> String | false | nil (9091.0) -
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず れかで返します。正常終了したスレッドに対して false、例外によ り終了したスレッドに対して nil を返します。
生きているスレッドの状態を文字列 "run"、"sleep", "aborting" のいず
れかで返します。正常終了したスレッドに対して false、例外によ
り終了したスレッドに対して nil を返します。
Thread#alive? が真を返すなら、このメソッドも真です。
例:
a = Thread.new { raise("die now") }
b = Thread.new { Thread.stop }
c = Thread.new { Thread.exit }
d = Thread.new { sleep }
d.kill ... -
Thread
. handle _ interrupt(hash) { . . . } -> object (9091.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを
実行します。
「割り込み」とは、非同期イベントや Thread#raise や
Thread#kill、Signal.#trap(未サポート)、メインスレッドの終了
(メインスレッドが終了すると、他のスレッドも終了されます)を意味します。
@param hash 例外クラスがキー、割り込みのタイミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。
: :immediate
すぐに割り込みます。
: :on_block... -
File
. open(path , mode = "r" , perm = 0666) -> File (9076.0) -
path で指定されるファイルをオープンし、File オブジェクトを生成して 返します。
path で指定されるファイルをオープンし、File オブジェクトを生成して
返します。
path が整数の場合はファイルディスクリプタとして扱い、それに対応する
File オブジェクトを生成して返します。IO.open と同じです。
ブロックを指定して呼び出した場合は、File オブジェクトを引数として
ブロックを実行します。ブロックの実行が終了すると、ファイルは自動的に
クローズされます。ブロックの実行結果を返します。
@param path ファイルを文字列で指定します。整数を指定した場合はファイルディスクリプタとして扱います。
@param mode モードを文字列か定数の論理... -
File
. open(path , mode = "r" , perm = 0666) {|file| . . . } -> object (9076.0) -
path で指定されるファイルをオープンし、File オブジェクトを生成して 返します。
path で指定されるファイルをオープンし、File オブジェクトを生成して
返します。
path が整数の場合はファイルディスクリプタとして扱い、それに対応する
File オブジェクトを生成して返します。IO.open と同じです。
ブロックを指定して呼び出した場合は、File オブジェクトを引数として
ブロックを実行します。ブロックの実行が終了すると、ファイルは自動的に
クローズされます。ブロックの実行結果を返します。
@param path ファイルを文字列で指定します。整数を指定した場合はファイルディスクリプタとして扱います。
@param mode モードを文字列か定数の論理... -
Thread
# join -> self (9073.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
Thread
# join(limit) -> self | nil (9073.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
Thread
# report _ on _ exception -> bool (9073.0) -
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
真の場合、そのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトはスレッド作成時の Thread.report_on_exception です。
@param newstate スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。
//emlist[例][ruby]{
a = Thread.new{ Thread.stop; raise }
a.report_on_exception = true
a.report_on_exception # => true
a.run
# => #<Th... -
Thread
:: Mutex # unlock -> self (9073.0) -
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。
@return self を返します。
例:
m = Mutex.new
begin
m.lock
# critical part
ensure
m.unlock
end
Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。
m = Mutex.new
m.lock
Thread.new do
m.unlock # => Thr... -
Gem
:: Package :: TarReader # rewind -> Integer (9067.0) -
自身に関連付けられた IO のファイルポインタを先頭に移動します。または、 Gem::Package::TarReader.new したときの IO#pos にファイルポ インタを先頭に移動します。
自身に関連付けられた IO のファイルポインタを先頭に移動します。または、
Gem::Package::TarReader.new したときの IO#pos にファイルポ
インタを先頭に移動します。
Gem::Package::TarReader#each の実行中に呼ばないようにしてください。
@return 戻った位置を返します。
@raise Gem::Package::NonSeekableIO 自身に関連付けられた IO がシーク可能
でない場合に発生します。 -
Thread
. pending _ interrupt?(error = nil) -> bool (9055.0) -
非同期割り込みのキューが空かどうかを返します。
非同期割り込みのキューが空かどうかを返します。
Thread.handle_interrupt は非同期割り込みの発生を延期させるのに使
用しますが、本メソッドは任意の非同期割り込みが存在するかどうかを確認す
るのに使用します。
本メソッドが true を返した場合、Thread.handle_interrupt で例外の
発生を延期するブロックを終了すると延期させられていた例外を発生させるこ
とができます。
@param error 対象の例外クラスを指定します。省略した場合は全ての例外を対
象に確認を行います。
例: 延期させられていた例外をただちに発生... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (9055.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
... -
スレッド (9055.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
Thread
# name=(name) -> String (9037.0) -
self の名前を name に設定します。
self の名前を name に設定します。
プラットフォームによっては pthread やカーネルにも設定を行う場合があります。
@raise ArgumentError 引数に ASCII 互換ではないエンコーディングのものを
指定した場合に発生します。
//emlist[例][ruby]{
a = Thread.new{}
a.name = 'named'
a.name # => "named"
a.inspect # => "#<Thread:0x00007f85ac8721f0@named@(irb):1 dead>"
... -
Thread
# run -> self (9037.0) -
停止状態(stop)のスレッドを再開させます。 Thread#wakeup と異なりすぐにスレッドの切り替え を行います。
停止状態(stop)のスレッドを再開させます。
Thread#wakeup と異なりすぐにスレッドの切り替え
を行います。
@raise ThreadError 死んでいるスレッドに対して実行すると発生します。
//emlist[例][ruby]{
a = Thread.new { puts "a"; Thread.stop; puts "c" }
sleep 0.1 while a.status!='sleep'
puts "Got here"
a.run
a.join
# => a
# => Got here
# => c
//}
@see Thread#wakeup, Threa... -
Thread
# wakeup -> self (9037.0) -
停止状態(stop)のスレッドを実行可能状態(run)にします。
停止状態(stop)のスレッドを実行可能状態(run)にします。
@raise ThreadError 死んでいるスレッドに対して実行すると発生します。
//emlist[例][ruby]{
c = Thread.new { Thread.stop; puts "hey!" }
sleep 0.1 while c.status!='sleep'
c.wakeup
c.join
# => "hey!"
//}
@see Thread#run, Thread.stop -
Thread
. report _ on _ exception -> bool (9037.0) -
真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。
デフォルトは false です。
Thread.new { 1.times { raise } }
は $stderr に以下のように出力します:
#<Thread:...> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
2: from -e:1:in `block in <main>'
1: fr... -
Thread
:: Mutex # synchronize { . . . } -> object (9037.0) -
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
mutex をロックし、ブロックを実行します。実行後に必ず mutex のロックを解放します。
ブロックが最後に評価した値を返します。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
//emlist[例][ruby]{
m = Mutex.new
result = m.synchronize do
m.locked? # =>... -
File
. link(old , new) -> 0 (406.0) -
old を指す new という名前のハードリンクを 生成します。old はすでに存在している必要があります。 ハードリンクに成功した場合は 0 を返します。
old を指す new という名前のハードリンクを
生成します。old はすでに存在している必要があります。
ハードリンクに成功した場合は 0 を返します。
失敗した場合は例外 Errno::EXXX が発生します。
@param old ファイル名を表す文字列を指定します。
@param new ファイル名を表す文字列を指定します。
@raise Errno::EXXX 失敗した場合に発生します。
//emlist[例][ruby]{
IO.write("testfile", "test")
File.link("testfile", "testlink") # => 0... -
PStore
# transaction(read _ only = false) {|pstore| . . . } -> object (376.0) -
トランザクションに入ります。 このブロックの中でのみデータベースの読み書きができます。
トランザクションに入ります。
このブロックの中でのみデータベースの読み書きができます。
読み込み専用のトランザクションが使用可能です。
@param read_only 真を指定すると、読み込み専用のトランザクションになります。
@return ブロックで最後に評価した値を返します。
@raise PStore::Error read_only を真にしたときに、データベースを変更しようした場合に発生します。
例:
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots... -
IO
. pipe {|read _ io , write _ io| . . . } -> object (367.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(enc _ str , **opts) {|read _ io , write _ io| . . . } -> object (367.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(ext _ enc) {|read _ io , write _ io| . . . } -> object (367.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(ext _ enc , int _ enc , **opts) {|read _ io , write _ io| . . . } -> object (367.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
Exception
# backtrace _ locations -> [Thread :: Backtrace :: Location] (337.0) -
バックトレース情報を返します。Exception#backtraceに似ていますが、 Thread::Backtrace::Location の配列を返す点が異なります。
バックトレース情報を返します。Exception#backtraceに似ていますが、
Thread::Backtrace::Location の配列を返す点が異なります。
現状では Exception#set_backtrace によって戻り値が変化する事はあり
ません。
//emlist[例: test.rb][ruby]{
require "date"
def check_long_month(month)
return if Date.new(2000, month, -1).day == 31
raise "#{month} is not long month"
end
... -
rinda
/ rinda (145.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
タプルスペースとは並列プログラムにおける一つのパターンです。
並列プログラミングにおいては、ロックのような同期処理が必須ですが、
適切な同期処理を実現することは困難をともないます。
このパターンにおいては、複数の並列単位(スレッド/プロセス)間の通信をすべて
タプルスペースという領域を経由して行います。これによって
プロセス間の通信トポロジーを単純化し、問題を簡単化します。
タプルスペースに対しては、タプルを書き込む(write)、取り出す(take)、
タプルの要素を覗き見る(read)
という操作の... -
IO
. popen([env = {} , [cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) -> IO (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen([env = {} , [cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen([env = {} , cmdname , *args , execopt={}] , mode = "r" , opt={}) -> IO (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen([env = {} , cmdname , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , [[cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) -> IO (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , [[cmdname , arg0] , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , [cmdname , *args , execopt={}] , mode = "r" , opt={}) -> IO (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , [cmdname , *args , execopt={}] , mode = "r" , opt={}) {|f| . . . } -> object (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , command , mode = "r" , opt={}) -> IO (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
IO
. popen(env = {} , command , mode = "r" , opt={}) {|f| . . . } -> object (136.0) -
サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。
p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"
サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。
... -
OpenSSL
:: PKCS7 . write _ smime(p7sig , data=nil , flags = 0) -> String (91.0) -
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
data には署名対象のデータを渡します。
data に nil を渡すと OpenSSL::PKCS7#data で得られる
文字列を用います。通常は nil を渡してください。
flags には以下の定数の or を渡します。
* OpenSSL::PKCS7::DETACHED
クリア署名をします。これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
* OpenSSL::PKCS7::TEXT
... -
IO
. popen("-" , mode = "r" , opt={}) -> IO (76.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
... -
IO
. popen("-" , mode = "r" , opt={}) {|io| . . . } -> object (76.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
... -
IO
. popen(env , "-" , mode = "r" , opt={}) -> IO (76.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
... -
IO
. popen(env , "-" , mode = "r" , opt={}) {|io| . . . } -> object (76.0) -
第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。
第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。
io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
... -
IO
. pipe -> [IO] (67.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(enc _ str , **opts) -> [IO] (67.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(ext _ enc) -> [IO] (67.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
IO
. pipe(ext _ enc , int _ enc , **opts) -> [IO] (67.0) -
pipe(2) を実行して、相互につながった2つの IO オブジェクトを要素とする配列を返します。
pipe(2) を実行して、相互につながった2つの
IO オブジェクトを要素とする配列を返します。
戻り値の配列は最初の要素が読み込み側で、次の要素が書き込み側です。
ブロックが渡された場合は、そのブロックに2つの IO オブジェクトが渡され、
ブロックの返り値がこのメソッドの返り値となります。
ブロック終了時に IO オブジェクトがもし close されていないならば
close します(close されていてるオブジェクトはそのままです)。
得られる2つの IO オブジェクトのエンコーディングを引数で指定することが
できます。
@param enc_str 読み込み側の外部エンコ... -
StringIO
# reopen(sio) -> StringIO (64.0) -
自身が表す文字列が指定された StringIO と同じものになります。
自身が表す文字列が指定された StringIO と同じものになります。
@param sio 自身が表したい StringIO を指定します。
//emlist[例][ruby]{
require 'stringio'
sio = StringIO.new("hoge", 'r+')
sio2 = StringIO.new("foo", 'r+')
sio.reopen(sio2)
p sio.read #=> "foo"
//} -
StringIO
# reopen(str , mode = & # 39;r+& # 39;) -> StringIO (64.0) -
自身が表す文字列が指定された文字列 str になります。
自身が表す文字列が指定された文字列 str になります。
与えられた str がフリーズされている場合には、mode はデフォルトでは読み取りのみに設定されます。
ブロックを与えた場合は生成した StringIO オブジェクトを引数としてブロックを評価します。
@param str 自身が表したい文字列を指定します。
この文字列はバッファとして使われます。StringIO#write などによって、
str 自身も書き換えられます。
@param mode Kernel.#open 同様文字列か整数で自身のモードを指定します。
@raise... -
IO
# getc -> String | nil (55.0) -
IO ポートから外部エンコーディングに従い 1 文字読み込んで返します。 EOF に到達した時には nil を返します。
IO ポートから外部エンコーディングに従い 1 文字読み込んで返します。
EOF に到達した時には nil を返します。
テキスト読み込みメソッドとして動作します。
IO#readchar との違いは EOF での振る舞いのみです。
@raise IOError 自身が読み込み用にオープンされていなければ発生します。
例:
File.write("testfile", "test")
f = File.new("testfile")
p f.getc #=> "い"
p f.getc #=> "ろ... -
IO
# ungetc(char) -> nil (55.0) -
指定された char を読み戻します。
指定された char を読み戻します。
@param char 読み戻したい1文字かそのコードポイントを指定します。
@raise IOError 読み戻しに失敗した場合に発生します。また、自身が読み込み用にオープンされていない時、
自身がまだ一度も read されていない時に発生します。
f = File.new("testfile") # => #<File:testfile>
c = f.getc # => "い"
f.ungetc(c) # => nil
f.getc... -
OpenSSL
:: ASN1 . # decode(der) -> OpenSSL :: ASN1 :: ASN1Data (55.0) -
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を
OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
複数の ASN.1 の値が含まれている場合、先頭の値だけを返します。
ASN.1 オブジェクトが Constructive である場合は、
それを構成する要素も再帰的に解析します。
例:
ruby -e '
require "openssl"
require "pp"
pem = File.read(ARGV[0])
cert = OpenSSL::X509::Certificate.new(pem... -
Socket
# connect(server _ sockaddr) -> 0 (55.0) -
connect(2) でソケットを接続します。
connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください。
たとえば IPv4 の TCP ソケットを生成し、connect で www.ruby-lang.org:80 に接続するには以下のようにします。
例:
require... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (55.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
... -
WIN32OLE
# ole _ get _ methods -> [WIN32OLE _ METHOD] (55.0) -
オブジェクトの参照可能プロパティ情報をWIN32OLE_METHODの配列として 返します。
オブジェクトの参照可能プロパティ情報をWIN32OLE_METHODの配列として
返します。
ole_get_methodsメソッドは、OLEオートメーションサーバのメソッドのうち読
み取り可能なプロパティをWIN32OLE_METHODの配列として返します。
@return WIN32OLE_METHODの配列。
@raise WIN32OLERuntimeError オートメーションサーバの呼び出しに失敗しました。
型情報ライブラリ(TypeLib)が提供されていない場合などに発生します。
excel = WIN32OLE...