種類
- インスタンスメソッド (37)
- 文書 (4)
- モジュール関数 (2)
- クラス (1)
- 特異メソッド (1)
ライブラリ
クラス
- Array (3)
- BasicSocket (1)
-
Enumerator
:: Lazy (2) - File (1)
-
Gem
:: Commands :: LockCommand (1) - IO (2)
-
Net
:: FTP (12) -
OpenSSL
:: SSL :: SSLSocket (2) - Socket (2)
- StringIO (2)
- Struct (1)
- TCPServer (1)
-
Thread
:: Mutex (3) - ThreadsWait (1)
モジュール
- FileTest (1)
-
Mutex
_ m (2) -
OpenSSL
:: Buffering (2) - Process (1)
キーワード
-
NEWS for Ruby 2
. 0 . 0 (1) -
NEWS for Ruby 2
. 1 . 0 (1) - Thread (1)
-
accept
_ nonblock (2) - blockdev? (1)
-
clock
_ gettime (1) - combination (1)
- complain (1)
-
connect
_ nonblock (2) - cycle (1)
-
enum
_ for (1) - flock (1)
- get (2)
- getbinaryfile (2)
-
mu
_ unlock (1) - new (1)
-
next
_ wait (1) - permutation (1)
- put (2)
- putbinaryfile (2)
-
read
_ nonblock (3) -
recv
_ nonblock (1) -
recvfrom
_ nonblock (1) - retrbinary (2)
-
ruby 1
. 6 feature (1) - sleep (1)
- storbinary (2)
-
to
_ enum (1) - unlock (2)
-
write
_ nonblock (3) - スレッド (1)
検索結果
先頭5件
-
Thread
:: Mutex # lock -> self (54322.0) -
mutex オブジェクトをロックします。一度に一つのス レッドだけが mutex をロックできます。既にロックされている mutex に対してロックを行おうとしたスレッドは mutex のロックが解放さ れるまで、実行が停止されます。
mutex オブジェクトをロックします。一度に一つのス
レッドだけが mutex をロックできます。既にロックされている mutex
に対してロックを行おうとしたスレッドは mutex のロックが解放さ
れるまで、実行が停止されます。
@raise ThreadError self 既にカレントスレッドにロックされている場合に発
生します。
また、Signal.#trap に指定したハンドラ内で実行
した場合に発生します。
@see Thread::Mutex#unlock
... -
File
# flock(operation) -> 0 | false (18643.0) -
ファイルをロックします。
ファイルをロックします。
ロックを取得するまでブロックされます。
ロックの取得に成功した場合は 0 を返します。
File::LOCK_NB (ノンブロッキング) を指定すると、本来ならブロックされる場合に
ブロックされずに false を返すようになります。
@param operation ロックに対する操作の種類を示す定数を指定します。
どのような定数が利用可能かは以下を参照して下さい。
@raise IOError 自身が close されている場合に発生します。
@raise Errno::EXXX operation に不正な整数を与えた... -
Process
. # clock _ gettime(clock _ id , unit=:float _ second) -> Float | Integer (18619.0) -
POSIX の clock_gettime() 関数の時間を返します。
POSIX の clock_gettime() 関数の時間を返します。
例:
p Process.clock_gettime(Process::CLOCK_MONOTONIC) #=> 896053.968060096
@param clock_id クロックの種類を以下の定数のいずれかで指定します。
サポートされている定数は OS やバージョンに依存します。
: Process::CLOCK_REALTIME
SUSv2 to 4, Linux 2.5.63, FreeBSD 3.0, NetBSD 2.0, OpenBSD 2.1, macOS... -
IO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | Symbol | nil (18355.0) -
IO をノンブロッキングモードに設定し、 その後で read(2) システムコールにより 長さ maxlen を上限として読み込み、文字列として返します。 EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
IO をノンブロッキングモードに設定し、
その後で read(2) システムコールにより
長さ maxlen を上限として読み込み、文字列として返します。
EAGAIN, EINTR などは Errno::EXXX 例外として呼出元に報告されます。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitReadable が Object#extend
されます。
なお、バッファが空でない場合は、read_nonblock はバッファから読み込みます。この場合、read(2) システムコールは呼ばれません... -
Thread
:: Mutex # unlock -> self (18355.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... -
BasicSocket
# recv _ nonblock(maxlen , flags = 0) -> String (18337.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
ソケットをノンブロッキングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
引数、返り値は BasicSocket#recv と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@param maxlen 受け取る文字列の最大の長さを指定します。
@param flags recv(2) を参照してください。
@raise IOError
@raise Errno::EXXX recvfrom(2) がエラーになった場合などに発生します。 -
IO
# write _ nonblock(string , exception: true) -> Integer | :wait _ writable (18337.0) -
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
IO をノンブロッキングモードに設定し、string を write(2) システムコールで書き出します。
write(2) が成功した場合、書き込んだ長さを返します。
EAGAIN, EINTR などは例外 Errno::EXXX として呼出元に報告されます。
書き込んだバイト数(つまり返り値)は String#bytesize の
値より小さい可能性があります。
発生した例外 がErrno::EAGAIN、 Errno::EWOULDBLOCK である場合は、
その例外オブジェクトに IO::WaitWritable が Object#extend
されます。よって IO::Wai... -
OpenSSL
:: Buffering # read _ nonblock(maxlen , buf) -> String (18337.0) -
通信路から maxlen バイトを上限としてデータを読み込み、 文字列として返します。
通信路から maxlen バイトを上限としてデータを読み込み、
文字列として返します。
即座に得られるデータが 1byte でも存在すればブロックしません。
内部バッファが空でない場合はバッファのデータを返します。
即座に得られるデータが存在しないときには例外が発生します。
例外が発生した場合、内部のソケットが利用可能になってから
再びこのメソッドを呼んでください。
基本的には IO#read_nonblock と同様です。しかし以下のような
違いもあります。
このメソッドはソケットが書き込み不可能(IO::WaitWritable)という理由で
例外を発生させる可能性があります。暗号... -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (18337.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をサーバモードとして開始し、
クライアントとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::S... -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (18337.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::S... -
FileTest
. # blockdev?(file) -> bool (18319.0) -
ファイルがブロックスペシャルファイルである時に真を返します。 そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。
ファイルがブロックスペシャルファイルである時に真を返します。
そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
@raise IOError 指定された IO オブジェクト file が既に close されていた場合に発生します。
例:
Dir.glob("/dev/*") { |file|
puts file if FileTest.blockdev?(file)
}
# /dev/disk0
# /dev/di... -
Mutex
_ m # mu _ unlock -> () (18319.0) -
ロックを解放します。ロック待ちになっていたスレッドの実行は再開されます。
ロックを解放します。ロック待ちになっていたスレッドの実行は再開されます。
@raise ThreadError ロックされていない場合に unlock を呼ぶと発生します -
Mutex
_ m # unlock -> () (18319.0) -
ロックを解放します。ロック待ちになっていたスレッドの実行は再開されます。
ロックを解放します。ロック待ちになっていたスレッドの実行は再開されます。
@raise ThreadError ロックされていない場合に unlock を呼ぶと発生します -
OpenSSL
:: Buffering # write _ nonblock(s) -> Integer (18319.0) -
文字列 s をノンブロッキングモードで書き込みます。
文字列 s をノンブロッキングモードで書き込みます。
成功した場合、書き込んだバイト数を返します。
1 バイトも書くことができず、ソケットの状態が変化するのを
待つ必要がある場合は例外を発生させます。
例外が発生した場合、内部のソケットが利用可能になってから
再びこのメソッドを呼んでください。
ただし内部バッファに書き込んでいないデータが残っている場合は、
まずバッファの内容をすべて出力してします。この時点で
ブロックする可能性があります。
基本的には IO#write_nonblock と同様です。しかし以下のような
違いもあります。
このメソッドはソケットが読み込み不可能(IO:... -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (18319.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
... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (18319.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
recvfrom(2) を呼び出します。
引数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@rai... -
StringIO
# read _ nonblock(maxlen , outbuf = nil , exception: true) -> String | nil (18319.0) -
StringIO#readに似ていますが、 exception オプションに false を指定すると EOFError を発生させず nil を返します。
StringIO#readに似ていますが、 exception オプションに false を指定すると EOFError を発生させず nil を返します。
@param len 読み込みたい長さを整数で指定します。StringIO#read と同じです。
@param outbuf 読み込んだ文字列を出力するバッファを文字列で指定します。指定した文字列オブジェクトが
あらかじめ length 長の領域であれば、余計なメモリの割当てが行われません。指定した文字列の
長さが length と異なる場合、その文字列は一旦 length ... -
TCPServer
# accept _ nonblock -> TCPSocket (18319.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
返り値は TCPServer#accept と同じです。
accept(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
@raise Errno::EXXX accept(2) がエラーになった場合に発生します。 -
StringIO
# write _ nonblock(obj) -> Integer (9319.0) -
自身に obj を書き込みます。StringIO#write と同じです。
自身に obj を書き込みます。StringIO#write と同じです。
@param obj 書き込みたいオブジェクトを指定します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。 -
Gem
:: Commands :: LockCommand # complain(message) -> () (9019.0) -
指定されたメッセージを表示します。--strict が有効な場合は例外が発生します。
指定されたメッセージを表示します。--strict が有効な場合は例外が発生します。
@param message 表示するメッセージを指定します。
@raise Gem::Exception コマンドラインオプションに --strict が指定されている場合に発生します。 -
Net
:: FTP # get(remotefile , localfile = File . basename(remotefile) , blocksize = DEFAULT _ BLOCKSIZE) -> nil (673.0) -
サーバ上のファイルを取得します。
サーバ上のファイルを取得します。
Net::FTP#binary の値に従って
Net::FTP#getbinaryfile もしくは
Net::FTP#gettextfile を呼びだします。
binary が偽のとき、つまりテキストモードの
ときには blocksize は無視されます。
@param remotefile 取得対象のリモートのファイル名を与えます。
@param localfile 取得したデータを格納するローカルのファイル名を与えます。
@param blocksize データ転送の単位をバイト単位で与えます。
@raise Net::FTPTempError... -
Net
:: FTP # get(remotefile , localfile = File . basename(remotefile) , blocksize = DEFAULT _ BLOCKSIZE) { |data| . . . . } -> nil (673.0) -
サーバ上のファイルを取得します。
サーバ上のファイルを取得します。
Net::FTP#binary の値に従って
Net::FTP#getbinaryfile もしくは
Net::FTP#gettextfile を呼びだします。
binary が偽のとき、つまりテキストモードの
ときには blocksize は無視されます。
@param remotefile 取得対象のリモートのファイル名を与えます。
@param localfile 取得したデータを格納するローカルのファイル名を与えます。
@param blocksize データ転送の単位をバイト単位で与えます。
@raise Net::FTPTempError... -
Net
:: FTP # getbinaryfile(remotefile , localfile = File . basename(remotefile) , blocksize = DEFAULT _ BLOCKSIZE) -> nil (673.0) -
サーバ上のファイルをバイナリモードで取得します。
サーバ上のファイルをバイナリモードで取得します。
サーバー上にある remotefile という名前のファイルを取得し、
ローカルの localfile という名前のファイルに保存します。
localfile が nil である場合には保存はしません。
データの転送は blocksize バイト毎に行なわれます。
ブロックが指定された場合は
データを blocksize バイト受信するごとに、そのデータを
ブロックに渡します。
@param remotefile 取得対象のリモートのファイル名を与えます。
@param localfile 取得したデータを格納するローカルのファイル... -
Net
:: FTP # getbinaryfile(remotefile , localfile = File . basename(remotefile) , blocksize = DEFAULT _ BLOCKSIZE) {|data| . . . } -> nil (673.0) -
サーバ上のファイルをバイナリモードで取得します。
サーバ上のファイルをバイナリモードで取得します。
サーバー上にある remotefile という名前のファイルを取得し、
ローカルの localfile という名前のファイルに保存します。
localfile が nil である場合には保存はしません。
データの転送は blocksize バイト毎に行なわれます。
ブロックが指定された場合は
データを blocksize バイト受信するごとに、そのデータを
ブロックに渡します。
@param remotefile 取得対象のリモートのファイル名を与えます。
@param localfile 取得したデータを格納するローカルのファイル... -
Net
:: FTP # put(localfile , remotefile = File . basename(localfile) , blocksize = DEFAULT _ BLOCKSIZE) -> nil (673.0) -
サーバへファイルを転送します。
サーバへファイルを転送します。
Net::FTP#binary の値に従って
Net::FTP#putbinaryfile もしくは
Net::FTP#puttextfile を呼びだします。
binary が偽のとき、つまりテキストモードの
ときには blocksize は無視されます。
@param localfile 転送するローカルのファイル名を与えます。
@param remotefile 転送データを保存するリモートのファイル名を与えます。
@param blocksize データ転送の単位をバイト単位で与えます。
@raise Net::FTPTempError 応答コ... -
Net
:: FTP # put(localfile , remotefile = File . basename(localfile) , blocksize = DEFAULT _ BLOCKSIZE) { |data| . . . . } -> nil (673.0) -
サーバへファイルを転送します。
サーバへファイルを転送します。
Net::FTP#binary の値に従って
Net::FTP#putbinaryfile もしくは
Net::FTP#puttextfile を呼びだします。
binary が偽のとき、つまりテキストモードの
ときには blocksize は無視されます。
@param localfile 転送するローカルのファイル名を与えます。
@param remotefile 転送データを保存するリモートのファイル名を与えます。
@param blocksize データ転送の単位をバイト単位で与えます。
@raise Net::FTPTempError 応答コ... -
Net
:: FTP # putbinaryfile(localfile , remotefile = File . basename(localfile) , blocksize = DEFAULT _ BLOCKSIZE) -> nil (673.0) -
サーバにファイルをバイナリモードで転送します。
サーバにファイルをバイナリモードで転送します。
ローカルの localfile という名前のファイルを読みだし、
サーバー上の remotefile という名前のファイルに保存します。
データの転送は blocksize バイト毎に行なわれます。
ブロックが指定された場合は
データを blocksize バイト転送するごとに、そのデータを
ブロックに渡します。
@param localfile 転送するローカルのファイル名を与えます。
@param remotefile 転送データを保存するリモートのファイル名を与えます。
@param blocksize データ転送の単位をバイト単... -
Net
:: FTP # putbinaryfile(localfile , remotefile = File . basename(localfile) , blocksize = DEFAULT _ BLOCKSIZE) {|data| . . . } -> nil (673.0) -
サーバにファイルをバイナリモードで転送します。
サーバにファイルをバイナリモードで転送します。
ローカルの localfile という名前のファイルを読みだし、
サーバー上の remotefile という名前のファイルに保存します。
データの転送は blocksize バイト毎に行なわれます。
ブロックが指定された場合は
データを blocksize バイト転送するごとに、そのデータを
ブロックに渡します。
@param localfile 転送するローカルのファイル名を与えます。
@param remotefile 転送データを保存するリモートのファイル名を与えます。
@param blocksize データ転送の単位をバイト単... -
Net
:: FTP # retrbinary(cmd , blocksize , rest _ offset = nil) -> nil (373.0) -
サーバーに cmd で指定されたコマンドを送り、バイナリデータを 取り寄せます。
サーバーに cmd で指定されたコマンドを送り、バイナリデータを
取り寄せます。
blocksize で指定されたバイト単位でデータを
読み込み、ブロックに渡します。
rest_offset が省略されなかった場合は、cmdを送る前に
REST コマンドを送り、指定したバイト数の位置から
転送を開始します。
@param cmd コマンドを文字列で与えます。
@param blocksize 読み込み単位をバイト単位で与えます。
@param rest_offset REST コマンドに与えるオフセットを与えます。
@raise Net::FTPTempError 応答コードが 4... -
Net
:: FTP # retrbinary(cmd , blocksize , rest _ offset = nil) {|data| . . . } -> nil (373.0) -
サーバーに cmd で指定されたコマンドを送り、バイナリデータを 取り寄せます。
サーバーに cmd で指定されたコマンドを送り、バイナリデータを
取り寄せます。
blocksize で指定されたバイト単位でデータを
読み込み、ブロックに渡します。
rest_offset が省略されなかった場合は、cmdを送る前に
REST コマンドを送り、指定したバイト数の位置から
転送を開始します。
@param cmd コマンドを文字列で与えます。
@param blocksize 読み込み単位をバイト単位で与えます。
@param rest_offset REST コマンドに与えるオフセットを与えます。
@raise Net::FTPTempError 応答コードが 4... -
Net
:: FTP # storbinary(cmd , file , blocksize , rest _ offset = nil) -> nil (373.0) -
サーバーに cmd で指定されたコマンドを送り、バイナリデータを 送ります。
サーバーに cmd で指定されたコマンドを送り、バイナリデータを
送ります。
送るデータは IO のインスタンスを
file で指定します。
(実際には StringIO のような IO とメソッドレベルで
互換するオブジェクトであればなんでもかまいません)。
blocksize で指定されたバイト単位で file からデータを読みこみ、
サーバに送ります。
rest_offset が省略されなかった場合は、cmdを送る前に
REST コマンドを送り、指定したバイト数の位置から
転送を開始します。
ブロックが指定された場合には、転送するデータを blocksize ごとに
ブロックに... -
Net
:: FTP # storbinary(cmd , file , blocksize , rest _ offset = nil) {|data| . . . } -> nil (373.0) -
サーバーに cmd で指定されたコマンドを送り、バイナリデータを 送ります。
サーバーに cmd で指定されたコマンドを送り、バイナリデータを
送ります。
送るデータは IO のインスタンスを
file で指定します。
(実際には StringIO のような IO とメソッドレベルで
互換するオブジェクトであればなんでもかまいません)。
blocksize で指定されたバイト単位で file からデータを読みこみ、
サーバに送ります。
rest_offset が省略されなかった場合は、cmdを送る前に
REST コマンドを送り、指定したバイト数の位置から
転送を開始します。
ブロックが指定された場合には、転送するデータを blocksize ごとに
ブロックに... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (337.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
Array
# combination(n) {|c| block } -> self (319.0) -
サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。
サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。
得られる組み合わせの順序は保証されません。ブロックなしで呼び出されると、組み合わせ
を生成する Enumerator オブジェクトを返します。
@param n 生成される配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emlist[... -
Array
# cycle(n=nil) {|obj| block } -> nil (319.0) -
配列の全要素を n 回(nilの場合は無限に)繰り返しブロックを呼びだします。
配列の全要素を n 回(nilの場合は無限に)繰り返しブロックを呼びだします。
ブロックを省略した場合は Enumerator を返します。
@param n 繰り返したい回数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emlist[例][ruby]{
a = ["a", "b", "c"]
a.cycle {|x| p... -
Array
# permutation(n = self . length) { |p| block } -> self (319.0) -
サイズ n の順列をすべて生成し,それを引数としてブロックを実行します。
サイズ n の順列をすべて生成し,それを引数としてブロックを実行します。
引数を省略した場合は配列の要素数と同じサイズの順列に対してブロックを実
行します。
得られる順列の順序は保証されません。ブロックなしで呼び出されると, 順列
を生成する Enumerator オブジェクトを返します。
@param n 生成する配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
... -
Enumerator
:: Lazy # enum _ for(method = :each , *args) {|*args| block} -> Enumerator :: Lazy (319.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Enumerator
:: Lazy # to _ enum(method = :each , *args) {|*args| block} -> Enumerator :: Lazy (319.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Struct
. new(*args , keyword _ init: false) {|subclass| block } -> Class (304.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
Struct クラスに新しいサブクラスを作って、それを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を出力します
//}
実装の都合により、クラス名の省略は後づけの機能でした。
メンバ名に String を指定できるのは後方互換... -
NEWS for Ruby 2
. 0 . 0 (127.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.0.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 1.9.3 以降の変更
=== 言語仕様の変更
* キーワード引数を追加しました
* %i, %I をシンボルの配列作成のために追加しました。(%w, %W に似ています)
* デフォルトのソースエンコーディングを US-ASCI... -
ruby 1
. 6 feature (109.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 がなくなっ
ていま... -
NEWS for Ruby 2
. 1 . 0 (37.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 (37.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (37.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
... -
スレッド (37.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡...