ライブラリ
- ビルトイン (17)
- continuation (1)
- csv (1)
- date (2)
- digest (1)
-
digest
/ md5 (1) -
digest
/ rmd160 (1) -
digest
/ sha1 (1) -
digest
/ sha2 (3) - drb (1)
- erb (1)
- matrix (1)
-
net
/ http (2) -
net
/ imap (3) -
net
/ telnet (1) - openssl (4)
- optparse (1)
- psych (3)
-
rdoc
/ markup (1) - resolv (1)
-
rexml
/ document (4) -
rubygems
/ commands / which _ command (1) -
rubygems
/ package / tar _ input (1) -
rubygems
/ package / tar _ output (1) -
rubygems
/ package / tar _ reader (1) - strscan (1)
- thread (2)
-
webrick
/ httpauth / htpasswd (1) -
webrick
/ httpproxy (1) -
webrick
/ httpstatus (2) -
webrick
/ httputils (1) - win32ole (4)
キーワード
- Base (1)
- BodyTypeMessage (1)
- BodyTypeText (1)
- CSV (1)
- Cipher (1)
- CompatibilityError (1)
- Complex (1)
- ConditionVariable (1)
- ContentDisposition (1)
- Continuation (1)
- ConverterNotFoundError (1)
- DH (1)
- DNS (1)
- DRbIdConv (1)
- Date (1)
- DateTime (1)
- ERB (1)
- EXXX (1)
- ExternalEntity (1)
- FormData (1)
- HTTPMultiStatus (1)
- HTTPNonAuthoritativeInformation (1)
- HTTPProxyServer (1)
- Htpasswd (1)
- IO (1)
- Instruction (1)
- InvalidByteSequenceError (1)
- MD5 (1)
- Markup (1)
- Matrix (1)
- NonAuthoritativeInformation (1)
- NotationDecl (1)
- Numeric (1)
- ObjectId (1)
- OptionParser (1)
- Options (1)
- PKCS7 (1)
- Proc (1)
- RMD160 (1)
- Random (1)
- RegexpError (1)
- RequestURITooLarge (1)
- SHA1 (1)
- SHA256 (1)
- SHA384 (1)
- SHA512 (1)
- ScalarScanner (1)
- Sequence (1)
- SizedQueue (1)
- Stat (1)
- String (1)
- StringScanner (1)
- TarInput (1)
- TarOutput (1)
- TarReader (1)
- Telnet (1)
- Thread (1)
- ThreadGroup (1)
- Time (1)
- UndefinedConversionError (1)
- WIN32OLERuntimeError (1)
-
WIN32OLE
_ EVENT (1) -
WIN32OLE
_ TYPE (1) -
WIN32OLE
_ TYPELIB (1) - WhichCommand (1)
- XMLDecl (1)
- YAMLTree (1)
- fatal (1)
検索結果
-
Numeric (6538.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...d
//}
また、任意桁の切上げ、切捨て、四捨五入を行うメソッドは以下のように
定義できます。
//emlist[][ruby]{
class Numeric
def roundup(d=0)
x = 10**d
if self > 0
self.quo(x).ceil * x
else
self.quo(x).floor * x
end
end
def roun... -
Encoding
:: UndefinedConversionError (346.0) -
エンコーディング変換後の文字が存在しない場合に発生する例外。
エンコーディング変換後の文字が存在しない場合に発生する例外。
UTF-8 にしかない文字を EUC-JP に変換しようとした場合などに発生します。
//emlist[例][ruby]{
"\u2603".encode(Encoding::EUC_JP)
#=> Encoding::UndefinedConversionError: U+2603 from UTF-8 to EUC-JP
//}
変換が多段階でなされ、その途中で例外が生じた場合は、
例外オブジェクトが保持するエラー情報はその中間のものになります。
//emlist[例][ruby]{
ec = Encoding::Co... -
REXML
:: NotationDecl (292.0) -
DTD の記法宣言を表すクラスです。
DTD の記法宣言を表すクラスです。
//emlist[][ruby]{
require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE foo [
<!NOTATION type-image-svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!NOTATION type-image-gif PUBLIC "image/gif">... -
IO (256.0)
-
基本的な入出力機能のためのクラスです。
基本的な入出力機能のためのクラスです。
File::Constants は、File から IO へ移動しました。
===[a:m17n] 多言語化と IO のエンコーディング
IO オブジェクトはエンコーディングを持ちます。
エンコーディングの影響を受けるメソッドと受けないメソッドがあります。
影響を受けるメソッドでは、IO のエンコーディングに従い読み込まれた文字列のエンコーディングが決定されます。
また IO のエンコーディングを適切に設定することにより、読み込み時・書き込み時に文字列のエンコーディングを
変換させることもできます。
==== エンコーディングの影響を受けるメ... -
String (256.0)
-
文字列のクラスです。 ヌル文字を含む任意のバイト列を扱うことができます。 文字列の長さにはメモリ容量以外の制限はありません。
文字列のクラスです。
ヌル文字を含む任意のバイト列を扱うことができます。
文字列の長さにはメモリ容量以外の制限はありません。
文字列は通常、文字列リテラルを使って生成します。
以下に文字列リテラルの例をいくつか示します。
//emlist[文字列リテラルの例][ruby]{
'str\\ing' # シングルクオート文字列 (エスケープシーケンスがほぼ無効)
"string\n" # ダブルクオート文字列 (エスケープシーケンスがすべて有効)
%q(str\\ing) # 「%q」文字列 (エスケープシーケンスがほぼ無効、デリミタが変えられる)
%Q(string\n) # 「%Q... -
Gem
:: Commands :: WhichCommand (202.0) -
指定された Gem パッケージに含まれるライブラリのパスを見つけるためのクラスです。
指定された Gem パッケージに含まれるライブラリのパスを見つけるためのクラスです。
Usage: gem which FILE [...] [options]
Options:
-a, --[no-]all show all matching files
-g, --[no-]gems-first search gems before non-gems
Common Options:
-h, --help このコマンドのヘルプを表示し... -
WEBrick
:: HTTPUtils :: FormData (196.0) -
クライアントがフォームへ入力した値を表すクラスです。multipart/form-data なデータを表すのにも 使われます。
クライアントがフォームへ入力した値を表すクラスです。multipart/form-data なデータを表すのにも
使われます。
WEBrick::HTTPRequest#query はリクエストのクエリーあるいは
クライアントがフォームへ入力した値を保持した Hash を返しますが、
その Hash のキーと値のうち値は FormData クラスのインスタンスになります。
同じ名前のフィールドが複数ある場合、WEBrick::HTTPUtils::FormData#list や
WEBrick::HTTPUtils::FormData#each_data によりそれぞれの値を取り出すことがで... -
Time (166.0)
-
時刻を表すクラスです。
時刻を表すクラスです。
Time.now は現在の時刻を返します。
File.mtime などが返すファイルのタイムスタンプは Time
オブジェクトです。
Time オブジェクトは時刻を起算時からの経過秒数で保持しています。
起算時は協定世界時(UTC、もしくはその旧称から GMT とも表記されます) の
1970年1月1日午前0時です。なお、うるう秒を勘定するかどうかはシステムに
よります。
Time オブジェクトが格納可能な時刻の範囲は環境によって異なっていましたが、
Ruby 1.9.2 からは OS の制限の影響を受けません。
また、Time オブジェクトは協定世界時と地方時... -
Matrix (148.0)
-
数Numericを要素とする行列を扱うクラスです。
数Numericを要素とする行列を扱うクラスです。
行列
m * n 個の数a(i,j)を
[ a(0,0) a(0,1) a(0,2) a(0,3) ... a(0,n-1) ]
[ a(1,0) a(1,1) a(1,2) a(1,3) ... a(1,n-1) ]
[ a(2,0) a(2,1) a(2,2) a(2,3) ... a(2,n-1) ]
[ ]
[ a(m-1,0) a(m-1,n-1) ]
... -
Digest
:: SHA1 (100.0) -
NIST (the US' National Institute of Standards and Technology) の SHA-1 Secure Hash Algorithmを実装するクラスです。 FIPS PUB 180-1に記述されています。
NIST (the US' National Institute of Standards and Technology) の
SHA-1 Secure Hash Algorithmを実装するクラスです。
FIPS PUB 180-1に記述されています。 -
Digest
:: SHA256 (100.0) -
FIPS PUB 180-2に記述されているNIST (the US' National Institute of Standards and Technology) の SHA-256 Secure Hash Algorithmを 実装するクラスです。
FIPS PUB 180-2に記述されているNIST (the US' National Institute of
Standards and Technology) の SHA-256 Secure Hash Algorithmを
実装するクラスです。 -
Digest
:: SHA384 (100.0) -
FIPS PUB 180-2に記述されているNIST (the US' National Institute of Standards and Technology) の SHA-384 Secure Hash Algorithmを 実装するクラスです。
FIPS PUB 180-2に記述されているNIST (the US' National Institute of
Standards and Technology) の SHA-384 Secure Hash Algorithmを
実装するクラスです。 -
Digest
:: SHA512 (100.0) -
FIPS PUB 180-2に記述されているNIST (the US' National Institute of Standards and Technology) の SHA-512 Secure Hash Algorithmを 実装するクラスです。
FIPS PUB 180-2に記述されているNIST (the US' National Institute of
Standards and Technology) の SHA-512 Secure Hash Algorithmを
実装するクラスです。 -
WEBrick
:: HTTPAuth :: Htpasswd (100.0) -
Apache の htpasswd 互換のクラスです。 .htpasswd ファイルを新しく作成することも出来ます。 htpasswd -m (MD5) や -s (SHA) で作成された .htpasswd ファイルには対応していません。
Apache の htpasswd 互換のクラスです。
.htpasswd ファイルを新しく作成することも出来ます。
htpasswd -m (MD5) や -s (SHA) で作成された .htpasswd ファイルには対応していません。
例
require 'webrick'
include WEBrick
htpd = HTTPAuth::Htpasswd.new('dot.htpasswd')
htpd.set_passwd(nil, 'username', 'supersecretpass')
htpd.flush
htpd2 = HTTPAuth::Htpassw... -
REXML
:: Instruction (94.0) -
XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。
XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。
XML 処理命令 とは XML 文書中の <? と ?> で挟まれた部分のことで、
アプリケーションへの指示を保持するために使われます。
XML 宣言(文書先頭の <?xml version=... ?>)はXML処理命令ではありませんが、
似た見た目を持っています。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-... -
OpenSSL
:: PKey :: DH (88.0) -
Diffie-Hellman 鍵共有クラス
Diffie-Hellman 鍵共有クラス
Diffie-Hellman 鍵共有プロトコルは署名ができないため、
OpenSSL::PKey::PKey#sign や OpenSSL::PKey::PKey#verify
を呼び署名や署名の検証を行おうとすると例外
OpenSSL::PKey::PKeyError が発生します。
Diffie-Hellman はこのライブラリでは基本的には鍵共有にしか利用できません。
=== 例
鍵共有の例。
require 'openssl'
# パラメータの生成
dh = OpenSSL::PKey::DH.generate(10... -
Complex (76.0)
-
複素数を扱うクラスです。
複素数を扱うクラスです。
Complex オブジェクトを作成するには、Kernel.#Complex、
Complex.rect、Complex.polar、Numeric#to_c、
String#to_c のいずれかを使用します。
//emlist[Complex オブジェクトの作り方][ruby]{
Complex(1) # => (1+0i)
Complex(2, 3) # => (2+3i)
Complex.polar(2, 3) # => (-1.9799849932008908+0.2822400161197344i)
Complex(0.... -
Date (76.0)
-
日付だけでなく時刻も扱える Date のサブクラス DateTime も利用できます。
日付だけでなく時刻も扱える Date のサブクラス DateTime も利用できます。
=== 簡単なつかいかた
//emlist[例][ruby]{
require 'date'
a = Date.new(1993, 2, 24)
b = Date.parse('1993-02-24')
b += 10
b - a #=> 10
b.year #=> 1993
b.strftime('%a') #=> "Sat"
yesterday = Date.today - 1
//}
=== 用語の定義
いくつか用語の定義は、8601、および X... -
DateTime (76.0)
-
日付だけでなく時刻も扱える Date のサブクラスです。
日付だけでなく時刻も扱える Date のサブクラスです。
DateTime は deprecated とされているため、
Timeを使うことを推奨します。
=== 簡単なつかいかた
require 'date'
a = DateTime.new(1993, 2, 24, 12, 30, 45)
b = DateTime.parse('1993-02-24T12:30:45')
b += 10
b - a #=> 10
b.year #=> 1993
b.strftime('%a') #=> "Sat"
yes... -
Encoding
:: CompatibilityError (76.0) -
2つのエンコーディング間に互換性がない場合に発生する例外。
2つのエンコーディング間に互換性がない場合に発生する例外。
エンコーディングの異なる文字列を連結しようとした場合などに発生します。
//emlist[例][ruby]{
"あ".encode("EUC-JP") + "あ".encode("UTF-8")
#=> Encoding::CompatibilityError: incompatible character encodings: EUC-JP and UTF-8
//} -
Encoding
:: InvalidByteSequenceError (76.0) -
文字列がそのエンコーディングにおいて不正なバイト列である場合に発生 する例外。
文字列がそのエンコーディングにおいて不正なバイト列である場合に発生
する例外。
通常エンコーディング変換時に発生します。
//emlist[例][ruby]{
"\x82\xa0".force_encoding("cp932").encode("UTF-8")
#=> "あ"
"\x82\xa0".force_encoding("EUC-JP").encode("UTF-8")
#=> Encoding::InvalidByteSequenceError: "\x82" on EUC-JP
//} -
OpenSSL
:: Cipher (76.0) -
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
基本的にこのクラスを直接使ってデータを暗号化することは
避けてください。通常はより高水準なインターフェースが利用可能な
はずです。必要なのは暗号アルゴリズムを指定するため
OpenSSL::Cipher.new で暗号オブジェクトを生成することだけでしょう。
もし、このクラスを直接利用して暗号化する場合は、暗号の鍵や
IV(Initialization Vector)の取り扱いについて正しく理解してからに
してください。
以下の手順で利用します。
* OpenSSL::Cipher.new や OpenSSL::... -
REXML
:: XMLDecl (76.0) -
XML 宣言を表すクラス。
XML 宣言を表すクラス。
文書から XML 宣言を取り出すには REXML::Document#xml_decl を使います。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<e />
EOS
xml_decl = doc.xml_decl
xml_decl.version # => "1.0"
xml_decl.encoding # => "UTF-8"
xml_de... -
RegexpError (76.0)
-
正規表現のコンパイルに失敗したときに発生します。
正規表現のコンパイルに失敗したときに発生します。
例:
$ ruby -e 'Regexp.compile("*")'
-e:1:in `initialize': target of repeat operator is not specified: /*/ (RegexpError)
from -e:1:in `Regexp#compile'
from -e:1 -
WIN32OLE
_ TYPELIB (76.0) -
OLEオートメーションサーバの型情報ライブラリ(TypeLib)を操作するための クラスです。
...s "creatable classes:"
tlib.ole_types.select{|cls| cls.progid }.each do |cls|
puts " #{cls.name}: PROGID=#{cls.progid}"
end
上記を実行すると以下の出力を得ます。
Guid of Excel typelib = {00020813-0000-0000-C000-000000000046}
version = 1.7
creatable classes:
Appli... -
Continuation (58.0)
-
継続を表すクラスです。
継続を表すクラスです。
Kernel.#callcc { |cont| ... } の呼び出し
は、直前の状態(ローカル変数の定義、スタックフレーム)を cont に記憶
してブロックを実行します。cont は、Continuation クラスのインスタ
ンスで、Continuation#call メソッドを実行するこ
とでいつでも記憶した状態を継続することができます。
C 言語の setjmp()/longjmp() がわかる人は
setjmp() == callcc {|c| }
longjmp() == c.call
と考えれば、わかりやすいかも知れません(ただし、callc... -
ERB (58.0)
-
eRuby スクリプトを処理するクラス。
eRuby スクリプトを処理するクラス。
従来 ERbLight と呼ばれていたもので、
標準出力への印字が文字列の挿入とならない点が eruby と異なります。
* https://magazine.rubyist.net/articles/0017/0017-BundledLibraries.html
=== 使い方
ERB クラスを使うためには require 'erb' する必要があります。
例:
require 'erb'
ERB.new($<.read).run
=== trim_mode
trim_mode は整形の挙動を変更するオプションです。次の... -
OpenSSL
:: ASN1 :: ObjectId (58.0) -
ASN.1 のオブジェクト識別子を表すクラス。
ASN.1 のオブジェクト識別子を表すクラス。
* ITU-T X.660 https://www.itu.int/rec/T-REC-X.660/en -
OpenSSL
:: PKCS7 (58.0) -
PKCS #7 クラス
PKCS #7 クラス
PKCS #7 は暗号技術とともに用いられるデータのフォーマットの仕様です。
データやそれに対する署名、証明した日時など任意の属性を含むことができ、
S/MIME などに使用されています。
2315 を参照してください。
=== S/MIME メッセージの種類
S/MIME には以下の種類のメッセージがあります
* enveloped-only
* signed-only
* signedData フォーマット
* multipart/signed フォーマット
* Certificate-only -
RDoc
:: Markup (58.0) -
RDoc 形式のドキュメントを目的の形式に変換するためのクラスです。
...フォーマットを行うようにパーサを拡張する事もできます。
例:
require 'rdoc/markup'
require 'rdoc/markup/to_html'
class WikiHtml < RDoc::Markup::ToHtml
# WikiWord のフォントを赤く表示。
def handle_special_WIKIWORD(special)
"<font color=red>... -
StringScanner (58.0)
-
StringScanner は文字列スキャナクラスです。 簡単に高速なスキャナを記述できます。
StringScanner は文字列スキャナクラスです。
簡単に高速なスキャナを記述できます。
//emlist[例][ruby]{
require 'strscan'
s = StringScanner.new('This is an example string')
s.eos? #=> false
p s.scan(/\w+/) #=> "This"
p s.scan(/\w+/) #=> nil
p s.scan(/\s+/) #=> " "
p s.scan(/\s+/) #=> nil
p s.scan(/\w+/) #=> "is"... -
Thread
:: ConditionVariable (58.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...が空になった場合、
あるいは満タンになった場合に Condition Variable を使って wait しています。
require 'thread'
class TinyQueue
def initialize(max=2)
@max = max
@full = ConditionVariable.new
@empty = ConditionVariable.new
@mutex = Mut... -
fatal (58.0)
-
インタプリタ内部で致命的なエラーが起こったときに発生します。
インタプリタ内部で致命的なエラーが起こったときに発生します。
致命的なエラーとは、例えば以下のような状態です。
* スレッドのデッドロックが発生した
* -x オプションや -C オプションで指定されたディレクトリに移動できなかった
* -i オプション付きで起動されたが、
パーミッションなどの関係でファイルを変更できなかった
通常の手段では、
Ruby プログラムからは fatal クラスにはアクセスできません。 -
Digest
:: MD5 (52.0) -
1321 に記述されている RSA Data Security, Inc. の MD5 Message-Digest Algorithmを実装するクラスです。
1321 に記述されている RSA Data Security, Inc. の MD5 Message-Digest
Algorithmを実装するクラスです。 -
Digest
:: RMD160 (52.0) -
Hans Dobbertin, Antoon Bosselaers, Bart Preneel によって設計された RIPEMD-160 ハッシュ関数を実装するクラスです。
Hans Dobbertin, Antoon Bosselaers, Bart Preneel によって設計された
RIPEMD-160 ハッシュ関数を実装するクラスです。 -
Gem
:: Package :: TarInput (52.0) -
gem-format な tar ファイルを読み込む Gem::Package::TarReader のラッ パークラスです。
gem-format な tar ファイルを読み込む Gem::Package::TarReader のラッ
パークラスです。 -
Gem
:: Package :: TarOutput (52.0) -
gem-format な tar ファイルを書き出す Gem::Package::TarWriter のラッ パークラスです。
gem-format な tar ファイルを書き出す Gem::Package::TarWriter のラッ
パークラスです。 -
Gem
:: Package :: TarReader (52.0) -
gem-format な tar ファイルを読むためのクラスです。
gem-format な tar ファイルを読むためのクラスです。 -
Net
:: HTTPMultiStatus (52.0) -
HTTP レスポンス 207 (Multi-Status) を表現するクラスです。
HTTP レスポンス 207 (Multi-Status) を表現するクラスです。
詳しくは 4918 を見てください。 -
Net
:: HTTPNonAuthoritativeInformation (52.0) -
HTTP レスポンス 203 (Non-Authoritative Information) を表現するクラスです。
HTTP レスポンス 203 (Non-Authoritative Information) を表現するクラスです。
詳しくは 7231 Section 6.3.4 を見てください。 -
Net
:: IMAP :: BodyTypeMessage (52.0) -
Content-Type が "message" であるメッセージを表すクラスです。
Content-Type が "message" であるメッセージを表すクラスです。
メールをメールに添付した場合などに使われます。
詳しくは 2045, 822 を参照してください。 -
Net
:: IMAP :: BodyTypeText (52.0) -
Content-Type が text であるメッセージを表すクラスです。
Content-Type が text であるメッセージを表すクラスです。
平文のメールを表します。
詳しくは MIME のRFC(2045)を参照してください。 -
Net
:: IMAP :: ContentDisposition (52.0) -
1806, 2183 で定義されている MIME の Content-Disposition フィールドを表すクラスです。
1806, 2183 で定義されている MIME の
Content-Disposition フィールドを表すクラスです。 -
Psych
:: ScalarScanner (52.0) -
YAML の scalar 型を読み込んで Ruby の built-in 型に変換するクラス。
YAML の scalar 型を読み込んで Ruby の built-in 型に変換するクラス。 -
WEBrick
:: HTTPStatus :: NonAuthoritativeInformation (52.0) -
HTTP のステータスコード 203 Non-Authoritative Information を表すクラスです。
HTTP のステータスコード 203 Non-Authoritative Information を表すクラスです。 -
WEBrick
:: HTTPStatus :: RequestURITooLarge (52.0) -
HTTP のステータスコード 414 Request-URI Too Long を表すクラスです。
HTTP のステータスコード 414 Request-URI Too Long を表すクラスです。 -
CSV (40.0)
-
このクラスは CSV ファイルやデータに対する完全なインターフェイスを提供します。
このクラスは CSV ファイルやデータに対する完全なインターフェイスを提供します。
=== 読み込み
//emlist[][ruby]{
require "csv"
csv_text = <<~CSV_TEXT
Ruby,1995
Rust,2010
CSV_TEXT
IO.write "sample.csv", csv_text
# ファイルから一行ずつ
CSV.foreach("sample.csv") do |row|
p row
end
# => ["Ruby", "1995"]
# ["Rust", "2010"]
# ファイルから一度に
p CSV.r... -
File
:: Stat (40.0) -
ファイルの情報を格納したオブジェクトのクラス。
ファイルの情報を格納したオブジェクトのクラス。
FileTest に同名のモジュール関数がある場合はそれと同じ働きをします。ただ、
ファイル名を引数に取るかわりに Stat 自身について判定する点が違います。
//emlist[][ruby]{
p File::Stat.new($0).directory? #=> false
p FileTest.directory?($0) #=> false
//}
1.8 以降では、属性メソッドがシステムでサポートされていない場合 nil が返ります。
なお、1.7 以前では 0 が返っていました。
dev デバイス番号(フ... -
OptionParser (40.0)
-
コマンドラインのオプションを取り扱うためのクラスです。
コマンドラインのオプションを取り扱うためのクラスです。
オプションが指定された時に呼ばれるブロックを
OptionParser#on メソッドで登録していきます。
つまり、OptionParser を使う場合、基本的には
(1) OptionParser オブジェクト opt を生成する。
(2) オプションを取り扱うブロックを opt に登録する。
(3) opt.parse(ARGV) でコマンドラインを実際に parse する。
というような流れになります。
//emlist[][ruby]{
require "optparse"
ProgramConfig = Ha... -
Psych
:: Nodes :: Sequence (40.0) -
YAML sequence http://yaml.org/spec/1.1/#sequence/syntax を表すクラスです。
YAML sequence http://yaml.org/spec/1.1/#sequence/syntax を表すクラスです。
YAML sequence とは基本的にはリスト、配列です。以下のような例が考えられます。
%YAML 1.1
---
- I am
- a Sequence
YAML sequence には anchor を付加することができます。
この例では Psych::Nodes::Sequence#anchor は "A" を返します。
%YAML 1.1
---
&A [
"This sequence",
"has an... -
Psych
:: Visitors :: YAMLTree (40.0) -
Ruby オブジェクトから YAML の AST を構築するためのクラスです。
Ruby オブジェクトから YAML の AST を構築するためのクラスです。
=== 例
builder = Psych::Visitors::YAMLTree.new
builder << { :foo => 'bar' }
builder << ["baz", "bazbaz"]
builder.tree # => #<Psych::Nodes::Stream ... > A stream containing two documents
puts tree.to_yaml
# =>
# ---
# :foo: bar
# ---
# - baz... -
REXML
:: ExternalEntity (40.0) -
DTD 内の宣言でパラメータ実体参照を使って宣言が されているものを表わすクラスです。
DTD 内の宣言でパラメータ実体参照を使って宣言が
されているものを表わすクラスです。
例えば、以下の DTD 宣言における %HTMLsymbol が
それにあたります。
<!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent">
%HTMLsymbol;
//emlist[][ruby]{
require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DO... -
Random (40.0)
-
MT19937に基づく擬似乱数生成器を提供するクラスです。
MT19937に基づく擬似乱数生成器を提供するクラスです。
=== 参考
オリジナル版 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html -
Resolv
:: DNS (40.0) -
このクラスは DNS を利用した名前解決をするリゾルバを 表します。
このクラスは DNS を利用した名前解決をするリゾルバを
表します。
このクラスは実際には下位のクラスに処理を依頼します。
DNSについては以下を参照してください。
* STD0013
* 1035
* ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
* etc. -
ThreadGroup (40.0)
-
スレッドグループを表すクラスです。グループに属する Thread をまとめて 操作することができます。
スレッドグループを表すクラスです。グループに属する Thread をまとめて
操作することができます。
Thread は必ずいずれかひとつのスレッドグループに属します。
生成されたばかりの Thread は、生成した Thread のグループを引き継ぎます。
メインスレッドはデフォルトでは ThreadGroup::Default に属します。
: 例:
生成したすべてのThreadが終了するのを待つ
5.times {
Thread.new { sleep 1; puts "#{Thread.current} finished" }
}
... -
WIN32OLE
_ EVENT (40.0) -
OLEオートメーションサーバからのイベント通知を制御するクラスです。
OLEオートメーションサーバからのイベント通知を制御するクラスです。
OLEオートメーションサーバによっては、サーバの処理の過程でクライアントが
あらかじめ登録したメソッドを呼び出すものがあります。このサーバが登録し
たメソッドを呼び出す動作を「イベント」と呼びます。WIN32OLE_EVENTを利用
すると、ブロックの形式でイベントを受け取るメソッドをサーバへ登録できま
す。
=== サンプルコード
ie = WIN32OLE.new('InternetExplorer.Application.1')
event = WIN32OLE_EVENT.new(ie, 'DWebBr... -
DRb
:: DRbIdConv (22.0) -
オブジェクトと識別子を相互に変換するクラスです。
オブジェクトと識別子を相互に変換するクラスです。
リモートオブジェクトは、URIと識別子で区別されます。
リモートメソッド呼び出しは、リモートプロセスに識別子を
送り、それを受け取ったプロセスでオブジェクトに変換することで実現されます。
このクラスはdRubyでデフォルトとして使われる
のオブジェクト-識別子間の変換クラスです。
この変換には ObjectSpace の機構が使われます。特に
ObjectSpace.#_id2ref が使われています。
これはリモートオブジェクト
が有効なのはリモートプロセス内の対応オブジェクトが GC で回収されるまで
であることを意味します。一方 GC... -
Digest
:: Base (22.0) -
すべての Digest::XXX クラスの基底クラスです。
すべての Digest::XXX クラスの基底クラスです。
例えば、MD5 値を得るには以下のようにします。
require 'digest/md5'
p Digest::MD5.hexdigest('abc') #=> '900150983cd24fb0d6963f7d28e17f72'
p Digest::MD5.file('ruby-1.8.5.tar.gz').to_s #=> '3fbb02294a8ca33d4684055adba5ed6f'
すべての Digest::XXX クラスは以下の共通インタフェースを持ちます。 -
Encoding
:: ConverterNotFoundError (22.0) -
指定した名前のエンコーディング変換をする変換器が 存在しない場合に発生する例外。
指定した名前のエンコーディング変換をする変換器が
存在しない場合に発生する例外。
//emlist[例][ruby]{
"あ".encode("Foo")
#=> Encoding::ConverterNotFoundError: code converter not found (UTF-8 to Foo)
//} -
Errno
:: EXXX (22.0) -
システム依存のエラーコードのそれぞれに対応する一連の例外クラスです。 Rubyのライブラリ内部でシステムコールや一部のC言語関数が失敗したときに発生します。
システム依存のエラーコードのそれぞれに対応する一連の例外クラスです。
Rubyのライブラリ内部でシステムコールや一部のC言語関数が失敗したときに発生します。
実際には「EXXX」というクラスが定義されているわけではありません。「XXX」の部分は下記に列挙したような各種のエラー名が入ります。
例えば、File.open の内部でシステムコール open(2) がエラーコード ENOENT を返すと、Rubyは例外 Errno::ENOENT を発生させます。
Ruby は処理系がコンパイルされるときに、デフォルトで下記リストのような Errno::EXXX クラスを定義しようとします。
動作... -
Net
:: Telnet (22.0) -
このクラスは telnet のクライアント機能を提供します。
このクラスは telnet のクライアント機能を提供します。
telnet でリモートホストにログインしてシェル経由で
コマンドを実行することを考えてみましょう。
これを Net::Telnet で実現するためには、
まず Net::Telnet.new に "Host" オプションを
与えてオブジェクトを作り、 Net::Telnet#login で
ユーザ名とパスワードを送ってログインし、
Net::Telnet#cmd でコマンドを
実行、最後に IO#close で接続を閉じます。
Net::Telnet#waitfor, Net::Telnet#print,
Net::Telne... -
Proc (22.0)
-
ブロックをコンテキスト(ローカル変数のスコープやスタックフ レーム)とともにオブジェクト化した手続きオブジェクトです。
ブロックをコンテキスト(ローカル変数のスコープやスタックフ
レーム)とともにオブジェクト化した手続きオブジェクトです。
Proc は ローカル変数のスコープを導入しないことを除いて
名前のない関数のように使えます。ダイナミックローカル変数は
Proc ローカルの変数として使えます。
Proc がローカル変数のスコープを保持していることは以下の例で
変数 var を参照できていることからわかります。
//emlist[例][ruby]{
var = 1
$foo = Proc.new { var }
var = 2
def foo
$foo.call
end
p foo ... -
RDoc
:: Options (22.0) -
rdoc コマンドのオプションを解析するためのクラスです。
...ンは必ず指定
する必要があります。rdoc --help を実行すると追加したオプションの一覧が
確認できます。
例:
class RDoc::Generator::Spellcheck
RDoc::RDoc.add_generator self
def self.setup_options rdoc_options
op = rdoc_options.option_parser... -
Thread (22.0)
-
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。
スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。
Thread を使うことで並行プログラミングが可能になります。
=== 実装
ネイティブスレッドを用いて実装されていますが、
現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される
ネイティブスレッドは常にひとつです。
ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には
GVL を解放します。その場合にはスレッドは同時に実行され得ます。
また拡張ライブラリから GVL を操作できるので、複数のスレッドを
同時に実行するような拡... -
Thread
:: SizedQueue (22.0) -
サイズの最大値を指定できる Thread::Queue です。
サイズの最大値を指定できる Thread::Queue です。
=== 例
283 より。q をサイズ 1 の SizedQueue オブジェクトに
することによって、入力される行と出力される行が同じ順序になります。
q = [] にすると入力と違った順序で行が出力されます。
require 'thread'
q = SizedQueue.new(1)
th = Thread.start {
while line = q.pop
print line
end
}
while l = gets
q.push(l)
end
... -
WEBrick
:: HTTPProxyServer (22.0) -
プロクシの機能を提供するクラスです。CONNECT メソッドにも対応しています。
プロクシの機能を提供するクラスです。CONNECT メソッドにも対応しています。
* https://magazine.rubyist.net/articles/0002/0002-WEBrickProxy.html
以下は完全に動作するプロクシサーバの例です。
require 'webrick'
require 'webrick/httpproxy'
s = WEBrick::HTTPProxyServer.new(Port: 8080)
Signal.trap('INT') do
s.shutdown
end
s.start -
WIN32OLERuntimeError (22.0)
-
COMインターフェイスエラー時に発生する例外です。
COMインターフェイスエラー時に発生する例外です。
WIN32OLERuntimeErrorは、OLEオートメーション呼び出しが例外ステータス
(HRESULTのMSBがオン)で返った場合や、メソッド呼び出し時にオートメーショ
ン仕様で認められていない値が与えられた場合に発生します。
OLEオートメーション呼び出しが例外ステータスで戻された場合は、メッセージ
に例外となったHRESULT値と対応するメッセージが表示されます。
HRESULT: http://msdn.microsoft.com/en-us/library/cc704587(v=PROT.10).aspx -
WIN32OLE
_ TYPE (22.0) -
WIN32OLE_TYPEオブジェクトは、型情報ライブラリ(TypeLib)内に定義された 1つの型情報を保持します。
WIN32OLE_TYPEオブジェクトは、型情報ライブラリ(TypeLib)内に定義された
1つの型情報を保持します。
=== サンプルコード
require 'win32ole'
excel_app_type = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application')
puts excel_app_type.progid # => "Excel.Application.14"
Ruby-1.9.1以降、WIN32OLE_TYPELIBオブジェクトの
WIN32OLE_TYPELIB...