別のキーワード
ライブラリ
- ビルトイン (46)
- optparse (2)
- pathname (1)
- set (1)
- shell (1)
-
shell
/ command-processor (1) -
shell
/ filter (1) - shellwords (3)
- socket (10)
- thwait (3)
- tsort (2)
- uri (1)
-
webrick
/ httputils (1) - win32ole (2)
- zlib (3)
クラス
- Array (8)
- BasicObject (2)
- File (1)
- IO (1)
- OptionParser (2)
- Pathname (1)
- Set (1)
- Shell (1)
-
Shell
:: CommandProcessor (1) -
Shell
:: Filter (1) - Socket (6)
- String (2)
- Thread (17)
-
Thread
:: Mutex (1) -
Thread
:: Queue (3) -
Thread
:: SizedQueue (3) - ThreadsWait (3)
-
WIN32OLE
_ VARIABLE (1) -
Zlib
:: Deflate (2) -
Zlib
:: Inflate (1)
モジュール
- Enumerable (7)
- Shellwords (2)
-
Socket
:: Constants (4) - TSort (2)
- URI (1)
-
WEBrick
:: HTTPUtils (1)
キーワード
- * (2)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) - ConditionVariable (1)
-
IPV6
_ JOIN _ GROUP (2) -
IP
_ MAX _ MEMBERSHIPS (2) -
MCAST
_ JOIN _ GROUP (2) -
MCAST
_ JOIN _ SOURCE _ GROUP (2) - Thread (1)
-
WIN32OLE
_ METHOD (1) - [] (1)
-
_ _ send _ _ (2) -
abort
_ on _ exception (2) -
abort
_ on _ exception= (2) -
add
_ trace _ func (1) - alive? (1)
- binwrite (1)
- chunk (1)
-
chunk
_ while (1) - deflate (1)
- deq (2)
- disjoint? (1)
-
drb
/ extservm (1) -
drb
/ gw (1) -
each
_ strongly _ connected _ component _ from (2) - escape (1)
-
join
_ nowait (1) - load (1)
-
next
_ wait (1) -
ole
_ type _ detail (1) -
on
_ tail (1) - pack (2)
- pack テンプレート文字列 (1)
- pop (2)
-
report
_ on _ exception (1) -
report
_ on _ exception= (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 3 feature (1) -
ruby 1
. 8 . 4 feature (1) - run (1)
-
set
_ dictionary (2) -
set
_ trace _ func (1) - shelljoin (2)
- shift (2)
-
slice
_ after (2) -
slice
_ before (2) -
slice
_ when (1) - split (1)
- stop (1)
- sum (2)
-
thread
_ variable _ get (1) -
thread
_ variable _ set (1) - tsort (1)
- unix (2)
- unlock (1)
- unpack (1)
- wakeup (1)
- スレッド (1)
- セキュリティモデル (1)
検索結果
先頭5件
-
File
. join(*item) -> String (54502.0) -
File::SEPARATORを間に入れて文字列を連結します。platform/DOSISH-supportで環境依存になる予定です。
File::SEPARATORを間に入れて文字列を連結します。platform/DOSISH-supportで環境依存になる予定です。
@param item 連結したいディレクトリ名やファイル名を文字列(もしくは文字列を要素に持つ配列)で与えます。
文字列AとBを連結する際に、Aの末尾の文字とBの先頭の文字がFile::SEPARATORであった場合には、
まずこれらを削除した上で改めてFile::SEPARATORを間に入れて連結します。
引数の中に配列がある場合は配列要素を再帰的に展開します。空の配列は空文字列に... -
Array
# join(sep = $ , ) -> String (54466.0) -
配列の要素を文字列 sep を間に挟んで連結した文字列を返します。
配列の要素を文字列 sep を間に挟んで連結した文字列を返します。
文字列でない要素に対しては、to_str があれば to_str、なければ to_s した結果を連結します。
要素がまた配列であれば再帰的に (同じ sep を利用して)
join した文字列を連結します。
ただし、配列要素が自身を含むような無限にネストした配列に対しては、以下
のような結果になります。
//emlist[例][ruby]{
ary = [1,2,3]
ary.push ary
p ary # => [1, 2, 3, [...]]
p ary.join # => Argum... -
Thread
# join -> self (54397.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
Thread
# join(limit) -> self | nil (54397.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
スレッド self の実行が終了するまで、カレントスレッドを停止し
ます。self が例外により終了していれば、その例外がカレントス
レッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
@param limit タイムアウトする時間を整数か小数で指定します。単位は秒です。
@raise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = ... -
URI
. join(uri _ str , *path) -> object (54394.0) -
文字列 uri_str と path ... を URI として連結して得られる URI オブジェクトを返します。
文字列 uri_str と path ... を URI として連結して得られる
URI オブジェクトを返します。
2396 の Section 5.2 の
仕様に従って連結します。
以下と等価です
require 'uri'
URI.parse(uri_str) + path + ...
@param uri_str URI 文字列
@param path 後ろに連結する文字列
@raise URI::InvalidComponentError 各要素が適合しない場合に発生します。
@raise URI::InvalidURIError パースに失敗した場合に発生します... -
Shell
# join(*item) -> String (54358.0) -
File クラスにある同名のクラスメソッドと同じです.
File クラスにある同名のクラスメソッドと同じです.
@param item 連結したいディレクトリ名やファイル名を文字列で与えます。
@see File.join -
Shell
:: CommandProcessor # join(*item) -> String (54358.0) -
File クラスにある同名のクラスメソッドと同じです.
File クラスにある同名のクラスメソッドと同じです.
@param item 連結したいディレクトリ名やファイル名を文字列で与えます。
@see File.join -
Shell
:: Filter # join(*item) -> String (54358.0) -
File クラスにある同名のクラスメソッドと同じです.
File クラスにある同名のクラスメソッドと同じです.
@param item 連結したいディレクトリ名やファイル名を文字列で与えます。
@see File.join -
Pathname
# join(*args) -> Pathname (54340.0) -
与えられたパス名を連結します。
与えられたパス名を連結します。
@param args 連結したいディレクトリ名やファイル名を文字列で与えます。
//emlist[例][ruby]{
require "pathname"
path0 = Pathname("/usr") # Pathname:/usr
path0 = path0.join("bin/ruby") # Pathname:/usr/bin/ruby
# 上記の path0 の処理は下記の path1 と同様のパスになります
path1 = Pathname("/usr") + "bin/ruby" ... -
Shellwords
. join(array) -> String (54340.0) -
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に
使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド
ライン文字列を生成します。
このメソッドは、Shellwords.#shelljoin の別名です。
@param array エスケープ対象の文字列を要素とする配列を指定します。
@return エスケープ結果を連結した文字列を返します。 -
ThreadsWait
# join(*threads) -> () (54340.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join(*threads)
p thall.threads
... -
Socket
:: Constants :: IPV6 _ JOIN _ GROUP -> Integer (18370.0) -
Join a multicast group。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Join a multicast group。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IPV6,
netinet/in.h(header), ip6(4freebsd), ipv6(7linux),
3493 -
Socket
:: Constants :: MCAST _ JOIN _ GROUP -> Integer (18370.0) -
Join a multicast group
Join a multicast group
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6,
3678 -
Socket
:: Constants :: MCAST _ JOIN _ SOURCE _ GROUP -> Integer (18370.0) -
Join a multicast source group
Join a multicast source group
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6,
3678 -
Socket
:: IPV6 _ JOIN _ GROUP -> Integer (18370.0) -
Join a multicast group。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Join a multicast group。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IPV6,
netinet/in.h(header), ip6(4freebsd), ipv6(7linux),
3493 -
Socket
:: MCAST _ JOIN _ GROUP -> Integer (18370.0) -
Join a multicast group
Join a multicast group
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6,
3678 -
Socket
:: MCAST _ JOIN _ SOURCE _ GROUP -> Integer (18370.0) -
Join a multicast source group
Join a multicast source group
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP, Socket::Constants::IPPROTO_IPV6,
3678 -
Set
# disjoint?(set) -> bool (18355.0) -
self と set が互いに素な集合である場合に true を返します。
self と set が互いに素な集合である場合に true を返します。
逆に self と set の共通集合かを確認する場合には Set#intersect? を
使用します。
@param self Set オブジェクトを指定します。
@raise ArgumentError 引数が Set オブジェクトでない場合に発生します。
//emlist[][ruby]{
require 'set'
p Set[1, 2, 3].disjoint? Set[3, 4] # => false
p Set[1, 2, 3].disjoint? Set[4, 5] # => true
//}... -
ThreadsWait
# join _ nowait(*threads) -> () (18340.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
しかし、実際には終了をまちません。
@param threads 複数スレッドの終了を待つスレッドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join_nowait(*thr... -
Array
# shelljoin -> String (18337.0) -
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に
使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド
ライン文字列を生成します。
array.shelljoin は、Shellwords.shelljoin(array) と等価です。
@return エスケープ結果を連結した文字列を返します。
@see Shellwords.#shelljoin -
Shellwords
. # shelljoin(array) -> String (18337.0) -
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。
配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に
使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド
ライン文字列を生成します。
個々の配列要素に対するエスケープには、Shellwords.#shellescape と
同じ規則が適用されます。
@param array エスケープ対象の文字列を要素とする配列を指定します。
@return エスケープ結果を連結した文字列を返します。
例:
require 'shellwords'
pattern = 'Jan 15'
file = 'file nam... -
ruby 1
. 8 . 4 feature (1315.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
:: ConditionVariable (289.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
スレッドの同期機構の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くことが
できません。リ... -
ruby 1
. 6 feature (235.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 がなくなっ
ていま... -
Array
# pack(template) -> String (163.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Array
# pack(template , buffer: String . new) -> String (163.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
String
# unpack(template) -> Array (163.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
Array#pack で生成された文字列を
テンプレート文字列 template にしたがってアンパックし、
それらの要素を含む配列を返します。
@param template pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」
を表すこともできます。
長さの意味はテンプレート文字により異なりますが大... -
drb
/ gw (145.0) -
drb 通信を中継するゲートウェイ(DRb::GW)と、 中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、 および DRb::DRbObject への拡張が含まれています。
drb 通信を中継するゲートウェイ(DRb::GW)と、
中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、
および DRb::DRbObject への拡張が含まれています。
このライブラリを利用することで直接通信することが不可能であるような
2つのプロセスが中継プロセスを経て drb によりやりとりできるようになります。
drb による通信とは、オブジェクトをプロセス間でやりとりすること、
およびそのメソッドを呼び出すことです。
中継プロセスが保持している DRb::GW オブジェクトに
それ以外のプロセスがオブジェクトを登録したり、登録済みの
オブジェクトを取り出... -
IO
. binwrite(path , string , offset=nil) -> Integer (127.0) -
path で指定されるファイルを開き、string を書き込み、 閉じます。
path で指定されるファイルを開き、string を書き込み、
閉じます。
ファイルを開くときの mode が "rb:ASCII-8BIT" で、バイナリモードが有効
である点以外は IO.write と同じです。
Kernel.#open と同様 path の先頭が "|" ならば、"|" に続くコマンドを実行し、コマンドの出力を標準出力に書き込みます。
offset を指定するとその位置までシークします。
offset を指定しないと、書き込みの末尾でファイルを
切り捨てます。
@param path ファイル名文字列
@param string 書き込む文字列
@param... -
Array
# *(sep) -> String (112.0) -
指定された sep を間にはさんで連結した文字列を生成して返します。Array#join(sep) と同じ動作をします。
指定された sep を間にはさんで連結した文字列を生成して返します。Array#join(sep) と同じ動作をします。
@param sep 文字列を指定します。
文字列以外のオブジェクトを指定した場合は to_str メソッドによ
る暗黙の型変換を試みます。
//emlist[例][ruby]{
p [1,2,3] * ","
# => "1,2,3"
//}
@see Array#join -
Thread (109.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
pack テンプレート文字列 (109.0)
-
pack テンプレート文字列
pack テンプレート文字列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」
を表すこともできます。
長さの意味はテンプレート文字により異なりますが大抵、
"iiii"
のように連続するテンプレート文字は
"i4"
と書き換えることができます。
テンプレート文字列中の空白類は無視されます。
また、`#' から改行あるいはテンプレート文字列の最後まではコメントとみな
され無視されます。... -
ruby 1
. 8 . 3 feature (109.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
ruby 1.8.3 feature
*((<ruby 1.8 feature>))
*((<ruby 1.8.2 feature>))
ruby 1.8.2 から ruby 1.8.3 までの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ... -
tsort (109.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3, 4... -
スレッド (109.0)
-
スレッド スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Ruby ではスレッドはThread クラスのインスタンスとして表されます。
スレッド
スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Ruby ではスレッドはThread クラスのインスタンスとして表されます。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (91.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への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>))... -
BasicObject
# _ _ send _ _ (name , *args) -> object (91.0) -
オブジェクトのメソッド name を args を引数にして呼び出し、メソッドの結果を返します。
オブジェクトのメソッド name を args を引数にして呼び出し、メソッドの結果を返します。
ブロック付きで呼ばれたときはブロックもそのまま引き渡します。
@param name 呼び出すメソッドの名前。 Symbol または文字列で指定します。
@param args メソッドに渡す任意個の引数
//emlist[例][ruby]{
class Mail
def delete(*args)
"(Mail#delete) - delete " + args.join(',')
end
def send(name, *args)
"(Mail#send) -... -
BasicObject
# _ _ send _ _ (name , *args) { . . . . } -> object (91.0) -
オブジェクトのメソッド name を args を引数にして呼び出し、メソッドの結果を返します。
オブジェクトのメソッド name を args を引数にして呼び出し、メソッドの結果を返します。
ブロック付きで呼ばれたときはブロックもそのまま引き渡します。
@param name 呼び出すメソッドの名前。 Symbol または文字列で指定します。
@param args メソッドに渡す任意個の引数
//emlist[例][ruby]{
class Mail
def delete(*args)
"(Mail#delete) - delete " + args.join(',')
end
def send(name, *args)
"(Mail#send) -... -
String
# split(sep = $ ; , limit = 0) -> [String] (91.0) -
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、 結果を文字列の配列で返します。
第 1 引数 sep で指定されたセパレータによって文字列を limit 個まで分割し、
結果を文字列の配列で返します。
第 1 引数 sep は以下のいずれかです。
: 正規表現
正規表現にマッチする部分で分割する。
特に、括弧によるグルーピングがあればそのグループにマッチした
文字列も結果の配列に含まれる (後述)。
: 文字列
その文字列自体にマッチする部分で分割する。
: 1 バイトの空白文字 ' '
先頭と末尾の空白を除いたうえで、空白文字列で分割する。
: nil
常に $; で分割する。 $; も nil の場合は、先頭と末尾... -
ThreadsWait
# next _ wait(nonblock = nil) -> Thread (91.0) -
指定したスレッドのどれかが終了するまで待ちます。
指定したスレッドのどれかが終了するまで待ちます。
@param nonblock true を与えると、キューが空の時、例外 ThreadsWait::ErrNoFinishedThread が発生します。
@raise ErrNoWaitingThread 終了をまつスレッドが存在しない時、発生します。
@raise ErrNoFinishedThread nonblock がtrue でかつ、キューが空の時、発生します。
#使用例
require 'thwait'
threads = []
2.times {|i|
threads << Thread.n... -
OptionParser
# on _ tail(*arg , &block) -> self (73.0) -
オプションを取り扱うためのブロックを自身の持つリストの最後に登録します。
オプションを取り扱うためのブロックを自身の持つリストの最後に登録します。
--version や --help の説明をサマリの最後に表示したい時に便利です。
@param arg OptionParser#on と同様です。
@param block OptionParser#on と同様です。
//emlist[例][ruby]{
require "optparse"
opts = OptionParser.new do |opts|
opts.on_head("-i", "--init")
opts.on("-u", "--update")
opts.on_tai... -
Thread
:: SizedQueue # deq(non _ block = false) -> object (73.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
Thread
:: SizedQueue # pop(non _ block = false) -> object (73.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
Thread
:: SizedQueue # shift(non _ block = false) -> object (73.0) -
キューからひとつ値を取り出します。 キューに push しようと待っているスレッドがあれば、実行を再開させます。
キューからひとつ値を取り出します。
キューに push しようと待っているスレッドがあれば、実行を再開させます。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(4)
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].eac... -
Array
# *(times) -> Array (67.0) -
配列の内容を times 回 繰り返した新しい配列を作成して返します。 値はコピーされないことに注意してください。
配列の内容を times 回 繰り返した新しい配列を作成して返します。
値はコピーされないことに注意してください。
@param times 繰り返したい回数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによ
る暗黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
@raise ArgumentError 引数に負の数を指定した場合に発生します。
//emlist[例][... -
Socket
:: Constants :: IP _ MAX _ MEMBERSHIPS -> Integer (67.0) -
Maximum number multicast groups a socket can join。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Maximum number multicast groups a socket can join。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP,
ip(4freebsd) -
Socket
:: IP _ MAX _ MEMBERSHIPS -> Integer (67.0) -
Maximum number multicast groups a socket can join。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。
Maximum number multicast groups a socket can join。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。
@see Socket::Constants::IPPROTO_IP,
ip(4freebsd) -
Thread
# abort _ on _ exception -> bool (67.0) -
真の場合、そのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例 外は、Thread#join などで検出されない限りそのスレッ ドだけをなにも警告を出さずに終了させます。
真の場合、そのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例
外は、Thread#join などで検出されない限りそのスレッ
ドだけをなにも警告を出さずに終了させます。
デフォルトは偽です。c:Thread#exceptionを参照してください。
@param newstate 自身を実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。
//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.abort_o... -
Thread
# abort _ on _ exception=(newstate) (67.0) -
真の場合、そのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例 外は、Thread#join などで検出されない限りそのスレッ ドだけをなにも警告を出さずに終了させます。
真の場合、そのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例
外は、Thread#join などで検出されない限りそのスレッ
ドだけをなにも警告を出さずに終了させます。
デフォルトは偽です。c:Thread#exceptionを参照してください。
@param newstate 自身を実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。
//emlist[例][ruby]{
thread = Thread.new { sleep 1 }
thread.abort_o... -
Thread
. abort _ on _ exception -> bool (67.0) -
真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。
真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join
などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。
デフォルトは false です。
c:Thread#exceptionを参照してください。
@param newstate スレッド実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。
//emlist[例][ruby]{
Thread.abort_on_exception # => false... -
Thread
. abort _ on _ exception=(newstate) (67.0) -
真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ 全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。
真の時は、いずれかのスレッドが例外によって終了した時に、インタプリタ
全体を中断させます。false の場合、あるスレッドで起こった例外は、Thread#join
などで検出されない限りそのスレッドだけをなにも警告を出さずに終了させます。
デフォルトは false です。
c:Thread#exceptionを参照してください。
@param newstate スレッド実行中に例外発生した場合、インタプリタ全体を終了させるかどうかを true か false で指定します。
//emlist[例][ruby]{
Thread.abort_on_exception # => false... -
Array
# sum(init=0) -> object (55.0) -
要素の合計を返します。例えば [e1, e2, e3].sum は init + e1 + e2 + e3 を返します。
要素の合計を返します。例えば [e1, e2, e3].sum は init + e1 + e2 + e3 を返します。
ブロックが与えられた場合、加算する前に各要素にブロックが適用されます。
配列が空の場合、initを返します。
//emlist[例][ruby]{
[].sum #=> 0
[].sum(0.0) #=> 0.0
[1, 2, 3].sum #=> 6
[3, 5.5].sum #... -
Array
# sum(init=0) {|e| expr } -> object (55.0) -
要素の合計を返します。例えば [e1, e2, e3].sum は init + e1 + e2 + e3 を返します。
要素の合計を返します。例えば [e1, e2, e3].sum は init + e1 + e2 + e3 を返します。
ブロックが与えられた場合、加算する前に各要素にブロックが適用されます。
配列が空の場合、initを返します。
//emlist[例][ruby]{
[].sum #=> 0
[].sum(0.0) #=> 0.0
[1, 2, 3].sum #=> 6
[3, 5.5].sum #... -
Enumerable
# chunk {|elt| . . . } -> Enumerator (55.0) -
要素を前から順にブロックで評価し、その結果によって 要素をチャンクに分けた(グループ化した)要素を持つ Enumerator を返します。
要素を前から順にブロックで評価し、その結果によって
要素をチャンクに分けた(グループ化した)要素を持つ
Enumerator を返します。
ブロックの評価値が同じ値が続くものを一つのチャンクとして
取り扱います。すなわち、ブロックの評価値が一つ前と
異なる所でチャンクが区切られます。
返り値の Enumerator は各チャンクのブロック評価値と
各チャンクの要素を持つ配列のペアを各要素とします。
そのため、eachだと以下のようになります。
//emlist[][ruby]{
enum.chunk {|elt| key }.each {|key, ary| do_something ... -
Enumerable
# chunk _ while {|elt _ before , elt _ after| . . . } -> Enumerator (55.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が偽になる所でチャンクを区切ります。
ブロックは self の長さ - 1 回呼び出されます。
@return チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.chunk_while { |elt_before, elt_af... -
Enumerable
# slice _ before {|elt| bool } -> Enumerator (55.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
パターンがマッチした要素、もしくはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャンクの先頭と見なします。
ブロックを渡した場合は、各要素に対しブロックを適用し
返り値が真であった要素をチャンクの先頭と見なします。
より厳密にいうと、「先頭要素」の手前で分割していきます。
最初の要素の評価は無視されます。
各チャンクは配列として表現されます。
Enumerable#to_a や Enumerable#map ... -
Enumerable
# slice _ before(pattern) -> Enumerator (55.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
パターンがマッチした要素、もしくはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャンクの先頭と見なします。
ブロックを渡した場合は、各要素に対しブロックを適用し
返り値が真であった要素をチャンクの先頭と見なします。
より厳密にいうと、「先頭要素」の手前で分割していきます。
最初の要素の評価は無視されます。
各チャンクは配列として表現されます。
Enumerable#to_a や Enumerable#map ... -
Enumerable
# slice _ when {|elt _ before , elt _ after| bool } -> Enumerator (55.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が真になる所でチャンクを区切ります。
ブロックは self の長さ - 1 回呼び出されます。
@return チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.slice_when { |elt_before, elt_aft... -
TSort
# each _ strongly _ connected _ component _ from(node , id _ map={} , stack=[]) -> Enumerator (55.0) -
node から到達可能な強連結成分についてのイテレータです。
node から到達可能な強連結成分についてのイテレータです。
返す値は規定されていません。
each_strongly_connected_component_from は
tsort_each_node を呼びません。
@param node ノードを指定します。
//emlist[例 到達可能なノードを表示する][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node... -
TSort
# each _ strongly _ connected _ component _ from(node , id _ map={} , stack=[]) {|nodes| . . . } -> () (55.0) -
node から到達可能な強連結成分についてのイテレータです。
node から到達可能な強連結成分についてのイテレータです。
返す値は規定されていません。
each_strongly_connected_component_from は
tsort_each_node を呼びません。
@param node ノードを指定します。
//emlist[例 到達可能なノードを表示する][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node... -
Thread
# add _ trace _ func(pr) -> Proc (55.0) -
スレッドにトレース用ハンドラを追加します。
スレッドにトレース用ハンドラを追加します。
追加したハンドラを返します。
@param pr トレースハンドラ(Proc オブジェクト)
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
43.to_s
end
th.add_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 4, nil, #<Binding:0x00007f98e107d0d8>, nil]
# => ["c-call", "example.rb", 4, ... -
Thread
# run -> self (55.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
# set _ trace _ func(pr) -> Proc | nil (55.0) -
スレッドにトレース用ハンドラを設定します。
スレッドにトレース用ハンドラを設定します。
nil を渡すとトレースを解除します。
設定したハンドラを返します。
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
2.to_s
Thread.current.set_trace_func nil
3.to_s
end
th.set_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 2, nil, #<Binding:0x00007fc8de87cb08>, nil]
#... -
Thread
# thread _ variable _ get(key) -> object | nil (55.0) -
引数 key で指定した名前のスレッドローカル変数を返します。
引数 key で指定した名前のスレッドローカル変数を返します。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new {
Thread.current.thread_variable_set("foo", "bar") # スレッドローカル
Thread.current["foo"] = "bar" # Fiber ローカル
Fiber.new {
Fiber.yield ... -
Thread
# wakeup -> self (55.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
:: Mutex # unlock -> self (55.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... -
Thread
:: Queue # deq(non _ block = false) -> object (55.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
Thread
:: Queue # pop(non _ block = false) -> object (55.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
Thread
:: Queue # shift(non _ block = false) -> object (55.0) -
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
キューからひとつ値を取り出します。キューが空の時、呼出元のスレッドは停止します。
@param non_block true を与えると、キューが空の時に例外 ThreadError が発生します。
//emlist[例][ruby]{
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resource1, :resource2, :resource3, nil].each { |r|
q.push(r)
}
t... -
WEBrick
:: HTTPUtils . # escape(str) -> String (55.0) -
与えられた文字列を数値参照文字列に変換します。
与えられた文字列を数値参照文字列に変換します。
以下の正規表現を使用して変換します。
control = (0x0..0x1f).collect{|c| c.chr }.join + "\x7f"
space = " "
delims = '<>#%"'
unwise = '{}|\\^[]`'
nonascii = (0x80..0xff).collect{|c| c.chr }.join
/[#{Regexp.escape(control + space + delims + unwise + nonascii)}]/n
@param str... -
Zlib
:: Deflate # set _ dictionary(string) -> String (55.0) -
圧縮に用いる辞書を指定します。string を返します。 このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。
圧縮に用いる辞書を指定します。string を返します。
このメソッドは Zlib::Deflate.new, Zlib::ZStream#reset
を呼び出した直後にのみ有効です。詳細は zlib.h を参照して下さい。
@param string 辞書に用いる文字列を指定します。詳しくは zlib.h を参照してください。
@return 辞書に用いる文字列を返します。
require 'zlib'
def case1(str)
dez = Zlib::Deflate.new
comp_str = dez.deflate(str)
comp_s... -
Zlib
:: Deflate . deflate(string , level = Zlib :: DEFAULT _ COMPRESSION) -> String (55.0) -
string を圧縮します。level の有効な値は Zlib::NO_COMPRESSION, Zlib::BEST_SPEED, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION 及び 0 から 9 の整数です。
string を圧縮します。level の有効な値は
Zlib::NO_COMPRESSION, Zlib::BEST_SPEED,
Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION
及び 0 から 9 の整数です。
ちなみに、このメソッドは以下のコードとほぼ同じです:
require 'zlib'
def deflate(string, level)
z = Zlib::Deflate.new(level)
dst = z.deflate(string, Zlib::FINISH)
z.close
... -
drb
/ extservm (55.0) -
DRb::ExtServManager を定義しているライブラリ。
DRb::ExtServManager を定義しているライブラリ。
DRb::ExtServManager は drb で実現されたサービスブローカーです。
個々のサービスは drb/extserv で定義されている
DRb::ExtServ を用いて実装します。
DRb::ExtServManager
はクライアントの要求に応じて個々のサービスを
サブプロセスとして起動し、各サービスを表す DRb::ExtServ オブジェクト
をリモートオブジェクトとしてクライアントに渡します。
このライブラリは簡易的なもので、あまりメンテナンスもされていないので、
本格的な用途にはこのライブラリを参... -
セキュリティモデル (55.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
セキュリティモデル
RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ
機構が備わっています。
Rubyのセキュリティモデルは「オブジェクトの汚染」と「セーフレベル」という
仕組みによってなりたっています。
=== オブジェクトの汚染
Rubyではオブジェクトは「汚染されている」とみなされることがあります。この
しくみは大きく分けて二つの使われ方をします。
ひとつ目は、信用できない入力をもとに作られたオブジェクトを「汚染されてい
る」とみなし、「危険な操作」の引数として使えないようにすることです。悪意
あるデータによって、プログラムが意図しない動作をする事... -
Enumerable
# slice _ after {|elt| bool } -> Enumerator (37.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素 としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し ます。
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素
としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し
ます。
パターンを渡した場合は各要素に対し === が呼び出され、 それが真になった
ところをチャンクの末尾と見なします。 ブロックを渡した場合は、各要素に対
しブロックを適用し 返り値が真であった要素をチャンクの末尾と見なします。
パターンもブロックも最初から最後の要素まで呼び出されます。
各チャンクは配列として表現されます。そのため、以下のような呼び出しを行
う事もできます。
//emlist[例][ruby]{
enum.sl... -
Enumerable
# slice _ after(pattern) -> Enumerator (37.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素 としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し ます。
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素
としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し
ます。
パターンを渡した場合は各要素に対し === が呼び出され、 それが真になった
ところをチャンクの末尾と見なします。 ブロックを渡した場合は、各要素に対
しブロックを適用し 返り値が真であった要素をチャンクの末尾と見なします。
パターンもブロックも最初から最後の要素まで呼び出されます。
各チャンクは配列として表現されます。そのため、以下のような呼び出しを行
う事もできます。
//emlist[例][ruby]{
enum.sl... -
OptionParser
# load(filename = nil) -> bool (37.0) -
指定された filename を読み込んで各行をまとめたものに対して OptionParser#parse を行ないます。
指定された filename を読み込んで各行をまとめたものに対して OptionParser#parse を行ないます。
パースが成功した場合に true を返します。
ファイルが存在しなかった場合に false を返します。
@param filename 各行をパースしたいファイルの名前を文字列で指定します。
指定されないか nil である場合、~/.options/ に
プログラムのサフィックスを付けた '~/.options/コマンド名' というファイルをパースします。
//emlist[例][ruby]{
re... -
Socket
. unix(path) -> Socket (37.0) -
Unix クライアントソケットを生成します。
Unix クライアントソケットを生成します。
ブロックが省略されたときは、生成されたソケットが返されます。
ブロックが渡されたときは、生成されたソケットを
引数としてブロックを呼び出します。メソッドの返り値は
ブロックの評価値となります。また、ブロックの終了後に
ソケットを IO#close します。
require 'socket'
# /tmp/sock と通信する
Socket.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO.copy_stream... -
Socket
. unix(path) {|sock| . . . } -> object (37.0) -
Unix クライアントソケットを生成します。
Unix クライアントソケットを生成します。
ブロックが省略されたときは、生成されたソケットが返されます。
ブロックが渡されたときは、生成されたソケットを
引数としてブロックを呼び出します。メソッドの返り値は
ブロックの評価値となります。また、ブロックの終了後に
ソケットを IO#close します。
require 'socket'
# /tmp/sock と通信する
Socket.unix("/tmp/sock") {|sock|
t = Thread.new { IO.copy_stream(sock, STDOUT) }
IO.copy_stream... -
Thread
# [](name) -> object | nil (37.0) -
name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。
name に対応したスレッドに固有のデータを取り出します。
name に対応するスレッド固有データがなければ nil を返し
ます。
@param name スレッド固有データのキーを文字列か Symbol で指定します。
//emlist[例][ruby]{
[
Thread.new { Thread.current["name"] = "A" },
Thread.new { Thread.current[:name] = "B" },
Thread.new { Thread.current["name"] = "C" }
].each do |th|
th.join... -
Thread
# alive? -> bool (37.0) -
スレッドが「生きている」時、true を返します。
スレッドが「生きている」時、true を返します。
例:
thr = Thread.new { }
thr.join # => #<Thread:0x401b3fb0 dead>
Thread.current.alive? # => true
thr.alive? # => false
Thread#status が真を返すなら、このメソッドも真です。
@see Thread#status, Thread#stop? -
Thread
# thread _ variable _ set(key , value) (37.0) -
引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま す。
引数 key で指定した名前のスレッドローカル変数に引数 value をセットしま
す。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と
異なり、セットした変数は Fiber を切り替えても共通で使える事に注意してく
ださい。
//emlist[例][ruby]{
thr = Thread.new do
Thread.current.thread_variable_set(:cat, 'meow')
Thread.current.thread_variable_set("dog", 'woof')
end
thr.join ... -
Thread
. report _ on _ exception -> bool (37.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
. report _ on _ exception=(newstate) (37.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
. stop -> nil (37.0) -
他のスレッドから Thread#run メソッドで再起動されるまで、カレ ントスレッドの実行を停止します。
他のスレッドから Thread#run メソッドで再起動されるまで、カレ
ントスレッドの実行を停止します。
//emlist[例][ruby]{
a = Thread.new { print "a"; Thread.stop; print "c" }
sleep 0.1 while a.status!='sleep'
print "b"
a.run
a.join
# => "abc"
//}
@see Thread#run, Thread#wakeup -
WIN32OLE
_ METHOD (37.0) -
OLEオートメーションサーバが持つメソッドの情報を提供します。
OLEオートメーションサーバが持つメソッドの情報を提供します。
WIN32OLE_METHODは、WIN32OLE#ole_methodsなどの呼び出しによって返さ
れるオブジェクトで、OLEオートメーションサーバのメソッドの情報(メタデー
タ)を保持します。
=== サンプルコード
excel = WIN32OLE.new('Excel.Application')
excel.ole_methods.each do |method|
if method.visible?
puts <<SIGNATURE
#{method.return_type} ... -
WIN32OLE
_ VARIABLE # ole _ type _ detail -> [String] (37.0) -
変数の型と属性を取得します。
変数の型と属性を取得します。
@return 変数の型と属性を文字列配列で返します。
tobj = WIN32OLE_TYPE.new('Microsoft XML, v5.0', 'tagSTATSTG')
tobj.variables.each do |v|
puts "#{v.ole_type} [#{v.ole_type_detail.join(', ')}] #{v.name}"
end
出力結果
Unknown Type 31 [] pwcsName # => VT_LPWSTR はWIN32OLE::VARIANTで未定義なので変換でき... -
Zlib
:: Inflate # set _ dictionary(string) -> String (37.0) -
展開に用いる辞書を指定します。string を返します。 このメソッドは Zlib::NeedDict 例外が発生した直後のみ 有効です。詳細は zlib.h を参照して下さい。
展開に用いる辞書を指定します。string を返します。
このメソッドは Zlib::NeedDict 例外が発生した直後のみ
有効です。詳細は zlib.h を参照して下さい。
@param string 展開に用いる辞書を文字列で指定します。
require 'zlib'
def case2(str, dict)
dez = Zlib::Deflate.new
dez.set_dictionary(dict)
comp_str = dez.deflate(str)
comp_str << dez.finish
comp_str.siz...