別のキーワード
ライブラリ
- ビルトイン (2)
- csv (1)
- date (2)
- delegate (1)
- digest (1)
-
drb
/ acl (1) - erb (1)
- fiddle (2)
-
fiddle
/ import (1) - ipaddr (1)
-
irb
/ cmd / load (1) -
irb
/ ext / loader (1) -
irb
/ input-method (1) - monitor (1)
-
net
/ http (7) -
net
/ telnet (1) - openssl (11)
- optparse (1)
- ostruct (1)
- pathname (1)
- prime (1)
- pstore (1)
- psych (1)
-
rdoc
/ code _ object (1) -
rdoc
/ markup (1) -
rdoc
/ rdoc (1) -
rdoc
/ require (1) - rexml (1)
-
rexml
/ document (9) -
rinda
/ rinda (1) -
ripper
/ filter (1) -
rubygems
/ requirement (2) - socket (2)
- stringio (1)
- strscan (1)
- thread (3)
- timeout (1)
- weakref (1)
-
webrick
/ httpauth / basicauth (1) -
webrick
/ httpauth / digestauth (1) -
webrick
/ httpauth / htdigest (1) -
webrick
/ httpauth / htpasswd (1) -
webrick
/ httpproxy (1) -
webrick
/ httpserver (1) -
webrick
/ httpservlet / abstract (1) -
webrick
/ httpstatus (3) - win32ole (4)
- zlib (2)
キーワード
- ACL (1)
- AbstractServlet (1)
- Base (1)
- BasicAuth (1)
- BlockCaller (1)
- CSV (1)
- CStruct (1)
- Cipher (1)
- Closure (1)
- CodeObject (1)
- Comment (1)
- ConditionVariable (1)
- Config (1)
- DH (1)
- DSA (1)
- Date (1)
- DateTime (1)
- Default (1)
- Digest (1)
- DigestAuth (1)
- ERB (1)
- Emitter (1)
- Entity (1)
- Error (1)
- ExtensionFactory (1)
- ExternalEntity (1)
- Fiber (1)
- Filter (1)
- GzipReader (1)
- GzipWriter (1)
- HTTPLengthRequired (1)
- HTTPNetworkAuthenticationRequired (1)
- HTTPPaymentRequired (1)
- HTTPPreconditionRequired (1)
- HTTPProxyAuthenticationRequired (1)
- HTTPProxyServer (1)
- HTTPRequest (1)
- HTTPServer (1)
- HTTPUpgradeRequired (1)
- Htdigest (1)
- Htpasswd (1)
- IPAddr (1)
- Instruction (1)
- LengthRequired (1)
- LoadAbort (1)
- LoadError (1)
- Markup (1)
- Monitor (1)
- NotationDecl (1)
- OpenStruct (1)
- OptionParser (1)
- PKey (1)
- PStore (1)
- ParseException (1)
- Pathname (1)
- PaymentRequired (1)
- Pretty (1)
- Prime (1)
- ProxyAuthenticationRequired (1)
- Queue (1)
- RDoc (1)
- RSA (1)
- ReadlineInputMethod (1)
- Request (1)
- Requirement (2)
- SSLServer (1)
- SSLSocket (1)
- SimpleDelegator (1)
- SizedQueue (1)
- StringIO (1)
- StringScanner (1)
- TCPServer (1)
- TCPSocket (1)
- Telnet (1)
- Template (1)
- Transitive (1)
- WIN32OLE (1)
-
WIN32OLE
_ TYPE (1) -
WIN32OLE
_ TYPELIB (1) -
WIN32OLE
_ VARIABLE (1) - WeakRef (1)
- XMLDecl (1)
検索結果
先頭5件
-
IRB
:: ExtendCommand :: Require (54052.0) -
irb 中の irb_require コマンドのための拡張を定義したクラスです。
irb 中の irb_require コマンドのための拡張を定義したクラスです。 -
RDoc
:: Require (54052.0) -
require されるファイルを表現します。
require されるファイルを表現します。
ライブラリの内部で使用します。 -
Gem
:: Requirement (18004.0) -
Gem の必要条件を扱うクラスです。
Gem の必要条件を扱うクラスです。
このクラスのインスタンスには複数の必要条件を含めることができます。
:Gem::Dependency の内部で使われています。 -
Gem
:: Version :: Requirement (18004.0) -
Alias of Gem::Requirement
Alias of Gem::Requirement -
Net
:: HTTPLengthRequired (18004.0) -
HTTP レスポンス 411 (Length Required) を表現するクラスです。
HTTP レスポンス 411 (Length Required) を表現するクラスです。
詳しくは 7231 Section 6.5.10 を見てください。 -
Net
:: HTTPNetworkAuthenticationRequired (18004.0) -
HTTP レスポンス 511 (Network Authentication Required) を表現するクラスです。
HTTP レスポンス 511 (Network Authentication Required) を表現するクラスです。
詳しくは 6585 を見てください。 -
Net
:: HTTPPaymentRequired (18004.0) -
HTTP レスポンス 402 (Payment Required) を表現するクラスです。
HTTP レスポンス 402 (Payment Required) を表現するクラスです。
詳しくは 7231 Section 6.5.2 を見てください。 -
Net
:: HTTPPreconditionRequired (18004.0) -
HTTP レスポンス 428 (Precondition Required) を表現するクラスです。
HTTP レスポンス 428 (Precondition Required) を表現するクラスです。
詳しくは 6585 を見てください。 -
Net
:: HTTPProxyAuthenticationRequired (18004.0) -
HTTP レスポンス 407 (Proxy Authentication Required) を表現するクラスです。
HTTP レスポンス 407 (Proxy Authentication Required) を表現するクラスです。
詳しくは 7235 Section 3.2 を見てください。 -
Net
:: HTTPUpgradeRequired (18004.0) -
HTTP レスポンス 426 (Upgrade Required) を表現するクラスです。
HTTP レスポンス 426 (Upgrade Required) を表現するクラスです。
詳しくは 7231 Section 6.5.15 を見てください。 -
WEBrick
:: HTTPStatus :: LengthRequired (18004.0) -
HTTP のステータスコード 411 Length Required を表すクラスです。
HTTP のステータスコード 411 Length Required を表すクラスです。 -
WEBrick
:: HTTPStatus :: PaymentRequired (18004.0) -
-
WEBrick
:: HTTPStatus :: ProxyAuthenticationRequired (18004.0) -
HTTP のステータスコード 407 Proxy Authentication Required を表すクラスです。
HTTP のステータスコード 407 Proxy Authentication Required を表すクラスです。 -
CSV (76.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... -
StringScanner (76.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"... -
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 は整形の挙動を変更するオプションです。次の... -
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>... -
REXML
:: XMLDecl (58.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... -
IRB
:: LoadAbort (52.0) -
irb 中で require などを中断した場合に発生する例外です。
irb 中で require などを中断した場合に発生する例外です。 -
IRB
:: ReadlineInputMethod (52.0) -
readline を用いた標準入力からの入力を表すクラスです。ライブラリ内部で使 用します。readline の require に失敗した場合は定義されません。
readline を用いた標準入力からの入力を表すクラスです。ライブラリ内部で使
用します。readline の require に失敗した場合は定義されません。 -
LoadError (52.0)
-
Kernel.#require や Kernel.#load が失敗したときに発生します。
Kernel.#require や Kernel.#load が失敗したときに発生します。 -
Fiddle
:: Closure (40.0) -
コールバック関数を表すクラスです。
...でオブジェクトを生成することで利用します。
require 'fiddle'
include Fiddle # TYPE_* を使うために include する
class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(*)(void*, void*) であるため、
# このメソッドには DL::CPtr......p s # => "()07Uabcqx"
Class.new を使うことで、サブクラスを明示的に作ることなしに
コールバックオブジェクトを作ることができます。
require 'fiddle'
include Fiddle # TYPE_* を使うために include する
compare = Class.new(Fiddle::Closure){... -
Monitor (40.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
MonitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
mon = Monitor.new
empty_cond = mon.new_cond
# consumer
Thread.start do
loop do
mon.synchronize do
empty... -
Net
:: Telnet (40.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... -
OpenSSL
:: SSL :: SSLServer (40.0) -
SSL サーバーのためのクラス。
SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単に実装するためのクラスであり、
これを利用せずとも SSL サーバを実装することは可能です。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx =... -
OpenSSL
:: SSL :: SSLSocket (40.0) -
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
=== 例
SSL/TLS サーバに接続して write します。
require 'socket'
require 'openssl'
include OpenSSL
soc = TCPSocket.new('www.example.com', 443)
ssl = SSL::SSLSocket.new(soc)
ssl.connect
ssl.post_connection_check('www.example.com')
raise "verification er... -
OpenStruct (40.0)
-
要素を動的に追加・削除できる手軽な構造体を提供するクラスです。
要素を動的に追加・削除できる手軽な構造体を提供するクラスです。
OpenStruct のインスタンスに対して未定義なメソッド x= を呼ぶと、
OpenStruct クラスの BasicObject#method_missing で捕捉され、そのインスタンスに
インスタンスメソッド x, x= が定義されます。
この挙動によって要素を動的に変更できる構造体として働きます。
require 'ostruct'
ab = OpenStruct.new
ab.foo = 25
p ab.foo # => 25
ab.bar = 2
p ab.bar ... -
Psych
:: Emitter (40.0) -
Psych::Parser でパースし、生じたイベントから YAML ドキュメントを再構築するようなハンドラです。
Psych::Parser でパースし、生じたイベントから
YAML ドキュメントを再構築するようなハンドラです。
以下の例では STDIN から YAML ドキュメントを入力し、
再構築した YAML ドキュメントを STDERR に出力します。
parser = Psych::Parser.new(Psych::Emitter.new($stderr))
parser.parse($stdin)
また、以下のようにイベントを手動で発生させることで
YAML ドキュメントを構築させることもできます。
各メソッドの意味については Psych::Handler を参照してください... -
REXML
:: Formatters :: Default (40.0) -
XMLドキュメントを(文字列として)出力するクラスです。
XMLドキュメントを(文字列として)出力するクラスです。
REXML::Formatters::Pretty と
異なりテキストの改行や空白を修正せずにそのまま出力します。
//emlist[][ruby]{
require 'rexml/document'
require 'rexml/formatters/default'
doc = REXML::Document.new <<EOS
<root>
<children>
<grandchildren/>
</children>
</root>
EOS
default_formatter = REXML::Formatters::... -
REXML
:: Formatters :: Pretty (40.0) -
XMLドキュメントを(文字列として)見た目良く出力するクラスです。
XMLドキュメントを(文字列として)見た目良く出力するクラスです。
REXML::Formatters::Default と
異なり見た目のためテキストの改行や空白を修正して出力します。
//emlist[][ruby]{
require 'rexml/document'
require 'rexml/formatters/pretty'
doc = REXML::Document.new <<EOS
<root>
<children>
<grandchildren foo='bar'/>
</children>
</root>
EOS
pretty_formatter = REXM... -
REXML
:: Formatters :: Transitive (40.0) -
XMLドキュメントをテキストの内容を変えずに 多少の整形を加えて出力するクラスです。
XMLドキュメントをテキストの内容を変えずに
多少の整形を加えて出力するクラスです。
これが有用な場合はあまりないでしょう。
整形されていない XML を整形したいが、
テキストの空白は改行は変えたくない場合には役にたつかもしれません。
ただ、ほとんどの場合は奇妙な出力結果になるでしょう。
//emlist[][ruby]{
require 'rexml/document'
require 'rexml/formatters/transitive'
doc = REXML::Document.new <<EOS
<root><children>
<grandchildren foo='ba... -
Ripper
:: Filter (40.0) -
イベントドリブンスタイルで Ruby プログラムを加工するためのクラスです。
...e 'ripper'
require 'cgi'
class Ruby2HTML < Ripper::Filter
def on_default(event, tok, f)
f << CGI.escapeHTML(tok)
end
def on_comment(tok, f)
f << %Q[<span class="comment">#{CGI.escapeHTML(tok)}</span>]
end
def on_tstring_beg(tok, f)
f << %Q[<span class="string">#{CGI.escapeHT... -
StringIO (40.0)
-
文字列に IO と同じインタフェースを持たせるためのクラスです。
文字列に IO と同じインタフェースを持たせるためのクラスです。
//emlist[例][ruby]{
require "stringio"
sio = StringIO.new("hoge", 'r+')
p sio.read #=> "hoge"
sio.rewind
p sio.read(1) #=> "h"
sio.write("OGE")
sio.rewind
p sio.read #=> "hOGE"
//}
=== 例外
StringIO オブジェクトは大抵の場合 IO オブジェクトと同... -
TCPServer (40.0)
-
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
このクラスによって簡単にソケットを利用したサーバのプログラミングができます。
例えば echo サーバは以下のようになります。
require "socket"
gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
while true
nsock = select(socks)
next if nsock ==... -
Timeout
:: Error (40.0) -
timeout で定義される例外クラスです。 関数 timeout がタイムアウトすると発生します。
...ror のサブクラスを
定義して使用した方が無難です。
==> foo.rb <==
require 'timeout.rb'
class Foo
FooTimeoutError = Class.new(TimeoutError)
def longlongtime_method
Timeout.timeout(100, FooTimeoutError) {
...... -
WEBrick
:: HTTPProxyServer (40.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 -
WIN32OLE (40.0)
-
OLEオートメーションサーバをRubyで操作するためのクラスです。
OLEオートメーションサーバをRubyで操作するためのクラスです。
Windowsの多くのアプリケーションやライブラリは、COMと呼ばれるAPI群を利用
して他のプログラムから操作できます。WIN32OLEがサポートしているのは、
COMのAPIのうち、特にインタープリタ用のインターフェイスであるOLEオートメー
ション(IDispatchインターフェイス)とそれに付随するリフレクション用のイ
ンターフェイスです。
これらのインターフェイスをサポートしている代表的なWindowsアプリケーショ
ンに、Office、IE、iTunes、Illustratorがあります。また、WMI、WshS... -
ACL (22.0)
-
drb で用いる ACL(Access Control List)クラス。
drb で用いる ACL(Access Control List)クラス。
Access control list は "allow" と "deny" の2つからなります。
"all" や "*" という文字列は任意のアドレスにマッチします。
IPAddr が取り扱える任意のアドレス/アドレスマスクを
使うことができます。
ACLのエントリーは、以下の例に示すように、
"allow_or_deny", "addr1",
"allow_or_deny", "addr2",
:
という文字列配列で表現されます。
@see DRb.#install_acl, DRb.#st... -
Date (22.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 (22.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... -
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 クラスは以下の共通インタフェースを持ちます。 -
Fiber (22.0)
-
ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。 他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。
ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。
他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。
Thread と違いユーザレベルスレッドとして実装されています。
Thread クラスが表すスレッドと違い、明示的に指定しない限り
ファイバーのコンテキストは切り替わりません。
またファイバーは親子関係を持ちます。Fiber#resume を呼んだファイバーが親になり
呼ばれたファイバーが子になります。親子関係を壊すような遷移(例えば
自分の親の親のファイバーへ切り替えるような処理)はできません。
例外 FiberErr... -
Fiddle
:: CStruct (22.0) -
C の構造体を表すクラスです。
C の構造体を表すクラスです。
このクラスは直接は使わず、Fiddle::Importer#struct を用いて
このクラスを継承したクラスを生成し、それを利用します。
Fiddle::Importer#struct が生成するクラスには
構造体の各メンバへのアクセサが定義されています。
このアクセサはシグネチャの型とメンバ名に従って定義されます。
例えば
require 'fiddle/import'
include Fiddle::Importer
S = struct(["long foo", "void* bar"])
とすると、 S#foo, S#foo= という... -
Fiddle
:: Closure :: BlockCaller (22.0) -
Ruby のブロックをラップしたコールバック関数を表すクラスです。
Ruby のブロックをラップしたコールバック関数を表すクラスです。
Ruby のブロックを C の関数ポインタとして表現するためのクラスです。
require 'fiddle'
include Fiddle
libc = Fiddle.dlopen("/lib/libc.so.6")
qs = Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYP... -
IPAddr (22.0)
-
IP アドレスを扱うのためのクラスです。
IP アドレスを扱うのためのクラスです。
例:
require 'ipaddr'
ipaddr1 = IPAddr.new("3ffe:505:2::1")
p ipaddr1 # => #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>
ipaddr3 = IPAddr.new("192.168.2.0/24")
p ipaddr3 # => #<IPAddr: IPv4:192.168.2.0/255.255... -
Net
:: HTTPRequest (22.0) -
HTTP リクエストを抽象化するクラスです。
HTTP リクエストを抽象化するクラスです。
Net::HTTPRequest は抽象クラスなので実際にはサブクラスの
* Net::HTTP::Get
* Net::HTTP::Head
* Net::HTTP::Post
* Net::HTTP::Put
* Net::HTTP::Copy
* Net::HTTP::Delete
* Net::HTTP::Lock
* Net::HTTP::Mkcol
* Net::HTTP::Move
* Net::HTTP::Options
* Net::HTTP::Propfind
* Net::H... -
OpenSSL
:: Cipher (22.0) -
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
基本的にこのクラスを直接使ってデータを暗号化することは
避けてください。通常はより高水準なインターフェースが利用可能な
はずです。必要なのは暗号アルゴリズムを指定するため
OpenSSL::Cipher.new で暗号オブジェクトを生成することだけでしょう。
もし、このクラスを直接利用して暗号化する場合は、暗号の鍵や
IV(Initialization Vector)の取り扱いについて正しく理解してからに
してください。
以下の手順で利用します。
* OpenSSL::Cipher.new や OpenSSL::... -
OpenSSL
:: Config (22.0) -
OpenSSL の設定ファイルを表すクラスです。
OpenSSL の設定ファイルを表すクラスです。
OpenSSL の設定ファイルは、キーと文字列を対応付けた単純な構造をしています。
また、キーはセクションによってグループ分けされています。
どのセクションにも属さないグローバルなキーを作ることもできます。
デフォルトの設定ファイルを読み込む例
require 'openssl'
conf = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
p conf.sections # => ["req_distinguished_name", "req_attribu... -
OpenSSL
:: Digest (22.0) -
ハッシュ関数のためのインターフェースを提供するクラスです。
ハッシュ関数のためのインターフェースを提供するクラスです。
このインターフェースには2通りの利用法が存在します。
一方は文字列から直接ハッシュを計算する (OpenSSL::Digest.digest,
Digest::Instance#hexdigest) 方法です。短い文字列の
ダイジェストを取るときにはこちらを使えばよいでしょう。
もう一つはダイジェストオブジェクトを作成して、文字列を順次
OpenSSL::Digest#update で渡すことでダイジェストを計算
します。大きなファイルのハッシュ値を計算する場合などに
利用します。
例:
require 'openssl'... -
OpenSSL
:: PKey :: DH (22.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... -
OpenSSL
:: PKey :: DSA (22.0) -
DSA 公開鍵暗号クラス
DSA 公開鍵暗号クラス
実際には、DSA は署名のためのアルゴリズムであり、暗号化はできません。
以下は、data に署名し、署名をもとに data を検証する簡単な例です。
require "openssl"
dsa512 = OpenSSL::PKey::DSA.new(512)
data = 'hoge'
sign = dsa512.sign('dss1', data)
p dsa512.verify('dss1', sign, data) -
OpenSSL
:: PKey :: PKey (22.0) -
公開鍵暗号のための抽象クラスです。
公開鍵暗号のための抽象クラスです。
以下のサブクラスを持ちます。
* OpenSSL::PKey::RSA
* OpenSSL::PKey::DSA
* OpenSSL::PKey::DH
* OpenSSL::PKey::EC
例:
require "openssl"
# 署名用の鍵を新規作成
dsa512 = OpenSSL::PKey::DSA.new(512)
data = 'hoge'
# 署名
sign = dsa512.sign("dss1", data)
# 署名の検証
p dsa512.verify(dss1, sign,... -
OpenSSL
:: PKey :: RSA (22.0) -
RSA 暗号鍵のクラスです。
RSA 暗号鍵のクラスです。
通常このクラスで利用するのは、
OpenSSL::PKey::RSA.generate, OpenSSL::PKey::RSA.new,
OpenSSL::PKey::RSA#public?, OpenSSL::PKey::RSA#private?,
OpenSSL::PKey::RSA#public_key, OpenSSL::PKey::RSA#to_text,
OpenSSL::PKey::RSA#to_pem, OpenSSL::PKey::RSA#to_der
のいずれかでしょう。これ以外のメソッドを利用するときは
RSA についてよく理解し、必要な場... -
OpenSSL
:: X509 :: ExtensionFactory (22.0) -
OpenSSL::X509::Extension を簡便に生成するための クラスです。
OpenSSL::X509::Extension を簡便に生成するための
クラスです。
例
require 'openssl'
# ca_cert: CA の証明書オブジェクト
# req: CSR オブジェクト
# newcert: 新たに生成する証明書のオブジェクト
ca_cert = OpenSSL::X509::Certificate.new(File.read('ca_cert.pem'))
req = OpenSSL::X509::Request.new(File.read('req.pem'))
newcert = OpenSSL::X509::C... -
OpenSSL
:: X509 :: Request (22.0) -
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす
クラスです。
X.509 CSR については 2986 などを参照してください。
=== 例
CSR を生成する例。
require 'openssl'
# ファイルから秘密鍵を読み込む
rsa = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
# 新しい CSR オブジェクトを生成
csr = OpenSSL::X509::Request.new
# DN を生成
name = OpenSSL::X50... -
OptionParser (22.0)
-
コマンドラインのオプションを取り扱うためのクラスです。
コマンドラインのオプションを取り扱うためのクラスです。
オプションが指定された時に呼ばれるブロックを
OptionParser#on メソッドで登録していきます。
つまり、OptionParser を使う場合、基本的には
(1) OptionParser オブジェクト opt を生成する。
(2) オプションを取り扱うブロックを opt に登録する。
(3) opt.parse(ARGV) でコマンドラインを実際に parse する。
というような流れになります。
//emlist[][ruby]{
require "optparse"
ProgramConfig = Ha... -
PStore (22.0)
-
Rubyのオブジェクトを外部ファイルに格納するためのクラスです。 内部で Marshal を使っています。
Rubyのオブジェクトを外部ファイルに格納するためのクラスです。
内部で Marshal を使っています。
=== 使い方
データベースにアクセスするためには、
transaction のブロック内である必要があります。
インターフェースは Hash に似ています。
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots # => []
ary = db["root"] = [1,2,3,4]
ary[0] = [1,1.5]
end
... -
Pathname (22.0)
-
パス名をオブジェクト指向らしく扱うクラスです。
パス名をオブジェクト指向らしく扱うクラスです。
Pathname オブジェクトはパス名を表しており、ファイルやディレクトリそのものを表してはいません。
当然、存在しないファイルのパス名も扱えます。
絶対パスも相対パスも扱えます。
Pathname オブジェクトは immutable であり、自身を破壊的に操作するメソッドはありません。
Pathname のインスタンスメソッドには、ディレクトリのパスを返す Pathname#dirname のように、
文字列操作だけで結果を返すものもあれば、ファイルの中身を読み出す Pathname#read のように
ファイルシステムにアクセスするも... -
Prime (22.0)
-
素数全体を表します。
素数全体を表します。
=== インスタンスを取得する方法
Prime クラスはシングルトンであると考えてください。Prime クラスはデフォルトのインスタンスを持っており、ユーザーはそのインスタンスを利用すべきです。 Prime.instance によってそのインスタンスを取得できます。
なお、利便性のためにデフォルトインスタンスのメソッドをクラスメソッドとしても利用できます。
//emlist[例][ruby]{
require 'prime'
Prime.instance.prime?(2) #=> true
Prime.prime?(2) #=> true
... -
RDoc
:: CodeObject (22.0) -
RDoc のコードツリーを表現するクラスの基本クラスです。
...ブクラスのツリーです。
//emlist{
* RDoc::Context
* RDoc::TopLevel
* RDoc::ClassModule
* RDoc::AnonClass
* RDoc::NormalClass
* RDoc::NormalModule
* RDoc::SingleClass
* RDoc::AnyMethod
* RDoc::GhostMethod
* RDoc::MetaMethod
* RDoc::Alias
* RDoc::Attr
*... -
RDoc
:: RDoc (22.0) -
rdoc ドキュメントの作成を行うクラスです。
rdoc ドキュメントの作成を行うクラスです。
以下のようにして、rdoc コマンドを実行するのと同様に実行します。
require 'rdoc/rdoc'
rdoc = RDoc::RDoc.new
rdoc.document(args)
args には rdoc コマンドに渡すのと同様の引数を文字列の配列で指定します。
rdoc コマンドと同様に変換結果はファイルに出力されるため、テキストを
HTML に変換する部分をライブラリとして使用したい場合、
rdoc/markup を参照してください。 -
REXML
:: Comment (22.0) -
XML コメントを表すクラス。
XML コメントを表すクラス。
コメントとは <!-- と --> で挟まれたテキストです。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<!-- xx -->
<root>
<!-- yy -->
text
<!-- zz -->
</root>
EOS
doc[0].string # => " xx "
doc.root[1].string # => " yy "
doc.root[3].string # => " zz "
//} -
REXML
:: Entity (22.0) -
XML における実体(エンティティ、entity)の宣言(declaration)を表わすクラス。
XML における実体(エンティティ、entity)の宣言(declaration)を表わすクラス。
DTD(REXML::DocType)内の実体宣言に対応するものです。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<!DOCTYPE document [
<!ENTITY f "foo bar baz">
<!ENTITY x SYSTEM "x.txt">
<!ENTITY y SYSTEM "y.png" NDATA PNG>
<!ENTITY % z "zzz">
<!EN... -
REXML
:: ExternalEntity (22.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... -
REXML
:: Instruction (22.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-... -
REXML
:: NotationDecl (22.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">... -
REXML
:: ParseException (22.0) -
XML のパースに失敗したときに生じる例外です。
XML のパースに失敗したときに生じる例外です。
//emlist[][ruby]{
require 'rexml/document'
begin
REXML::Document.new("<a>foo\n</b></a> ")
rescue REXML::ParseException => ex
ex.position # => 16
ex.line # => 2
ex.context # => [16, 2, 2]
end
//} -
Rinda
:: Template (22.0) -
タプルのマッチングのためのクラスです。 ユーザがこのクラスを直接使うことはありません。
タプルのマッチングのためのクラスです。
ユーザがこのクラスを直接使うことはありません。
=== 例
require 'rinda/rinda'
template = Rinda::Template.new(['abc', nil, nil])
template.match(['abc', 2, 5]) # => true
template.match(['hoge', 2, 5]) # => false
template = Rinda::Template.new([String, Integer, nil])
template.match(['abc', 2, 5... -
SimpleDelegator (22.0)
-
Delegator クラスを継承し、シンプルなメソッド委譲を実現した具象クラス。
Delegator クラスを継承し、シンプルなメソッド委譲を実現した具象クラス。
委譲先に指定されたオブジェクトへメソッドの実行を委譲します。
例:
//emlist{
require 'delegate'
foo = Object.new
def foo.test
p 25
end
foo2 = SimpleDelegator.new(foo)
foo2.test # => 25
//} -
TCPSocket (22.0)
-
インターネットドメインのストリーム型ソケットのクラスです。
インターネットドメインのストリーム型ソケットのクラスです。
通常のIO クラスのサブクラスと同
様の入出力ができます。このクラスによってソケットを用いたクラ
イアントを簡単に記述できるようになります。
ユーザの入力をそのままサーバに転送するプログラムは以下の
ようになります。
require "socket"
port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"
s = TCPSocket.open("localhost", port)
while gets
... -
Thread
:: ConditionVariable (22.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...が空になった場合、
あるいは満タンになった場合に Condition Variable を使って wait しています。
require 'thread'
class TinyQueue
def initialize(max=2)
@max = max
@full = ConditionVariable.new
@empty = ConditionVariable.new
@mutex = Mut... -
Thread
:: Queue (22.0) -
Queue はスレッド間の FIFO(first in first out) の通信路です。ス レッドが空のキューを読み出そうとすると停止します。キューになんら かの情報が書き込まれると実行は再開されます。
Queue はスレッド間の FIFO(first in first out) の通信路です。ス
レッドが空のキューを読み出そうとすると停止します。キューになんら
かの情報が書き込まれると実行は再開されます。
最大サイズが指定できる Queue のサブクラス Thread::SizedQueue も提供されています。
=== 例
require 'thread'
q = Queue.new
th1 = Thread.start do
while resource = q.pop
puts resource
end
end
[:resou... -
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
:: HTTPAuth :: BasicAuth (22.0) -
HTTP の Basic 認証のためのクラスです。
HTTP の Basic 認証のためのクラスです。
例
require 'webrick'
realm = "WEBrick's realm"
srv = WEBrick::HTTPServer.new({ :BindAddress => '127.0.0.1', :Port => 10080})
htpd = WEBrick::HTTPAuth::Htpasswd.new('dot.htpasswd')
htpd.set_passwd(nil, 'username', 'supersecretpass')
authenticator =... -
WEBrick
:: HTTPAuth :: DigestAuth (22.0) -
HTTP の Digest 認証のためのクラスです。
HTTP の Digest 認証のためのクラスです。
2617 も参照してください。
例:
require 'webrick'
config = { :Realm => 'DigestAuth example realm' }
htdigest = WEBrick::HTTPAuth::Htdigest.new 'my_password_file'
htdigest.set_passwd config[:Realm], 'username', 'password'
htdigest.flush
config[:UserDB] = htdigest
dige... -
WEBrick
:: HTTPAuth :: Htdigest (22.0) -
Apache の htdigest 互換のクラス。
Apache の htdigest 互換のクラス。
例
require 'webrick'
include WEBrick
htd = HTTPAuth::Htdigest.new('dot.htdigest')
htd.set_passwd('realm', 'username', 'supersecretpass')
htd.flush
htd2 = HTTPAuth::Htdigest.new('dot.htdigest')
p htd2.get_passwd('realm', 'username', false) == '65fe03e5b0a199462186848... -
WEBrick
:: HTTPAuth :: Htpasswd (22.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... -
WEBrick
:: HTTPServer (22.0) -
HTTP サーバの機能を提供するクラスです。
HTTP サーバの機能を提供するクラスです。
以下は HTTP サーバとしてちゃんと動作する例です。
require 'webrick'
srv = WEBrick::HTTPServer.new({:DocumentRoot => '/home/username/public_html/',
:BindAddress => '127.0.0.1',
:Port => 10080})
srv.mount('/hoge.pl', WEBrick::HTTPSe... -
WEBrick
:: HTTPServlet :: AbstractServlet (22.0) -
サーブレットの抽象クラスです。実装は AbstractServlet のサブクラスで行います。
サーブレットの抽象クラスです。実装は AbstractServlet のサブクラスで行います。
サーブレットは以下のように使われます。WEBrick::HTTPServlet::CGIHandler は
webrick/httpservlet/cgihandler で提供されているサーブレットです。
CGIHandler は AbstractServlet のサブクラスです。
require 'webrick'
srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
... -
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... -
WIN32OLE
_ TYPELIB (22.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... -
WIN32OLE
_ VARIABLE (22.0) -
OLEオートメーションの変数情報をRubyで参照するためのクラスです。
OLEオートメーションの変数情報をRubyで参照するためのクラスです。
OLEオートメーションサーバは、定数(WIN32OLE.const_load)、メソッ
ド/プロパティ(WIN32OLE_METHOD)、イベント(WIN32OLE_EVENT)
のほかに変数をクライアントへ提供できます。WIN32OLE_VARIABLEクラスは、サー
バが提供する変数の情報をオブジェクト化します。変数情報にはCOMで決められ
た構造体やユーザ定義型のフィールド情報などがありますが、最も良く利用さ
れるのはenum(列挙型)のメンバ情報です。enumのメンバは定数として利用で
きます。
WIN32OL... -
WeakRef (22.0)
-
weak reference を実現するクラスです。
weak reference を実現するクラスです。
WeakRef オブジェクトは与えられたオブジェクトをポイントしますが、
ポイント先のオブジェクトは GC される可能性があります。
アクセスしようとしたときにオブジェクトが GC されていれば
WeakRef::RefError が発生します。
delegate も参照してください。
=== サンプルコード
require 'weakref'
foo = Object.new
ref = WeakRef.new(foo)
ref.some_method_of_foo -
Zlib
:: GzipReader (22.0) -
gzip 形式の圧縮ファイルを読み込むラッパークラスです。 IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを 持つオブジェクト) と関連付けて使用します。
gzip 形式の圧縮ファイルを読み込むラッパークラスです。
IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを
持つオブジェクト) と関連付けて使用します。
require 'zlib'
=begin
# hoge.gz がない場合は下記で作成できる。
Zlib::GzipWriter.open('hoge.gz') { |gz|
gz.puts 'hoge'
}
=end
Zlib::GzipReader.open('hoge.gz') {|gz|
print gz.read
}
f = File.op... -
Zlib
:: GzipWriter (22.0) -
gzip 形式の圧縮ファイルを書き出すラッパークラスです。 IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを 持つオブジェクト) と関連付けて使用します。
gzip 形式の圧縮ファイルを書き出すラッパークラスです。
IO クラスのインスタンス (又は IO クラスのインスタンスと同じメソッドを
持つオブジェクト) と関連付けて使用します。
require 'zlib'
Zlib::GzipWriter.open('hoge.gz') {|gz|
gz.write 'jugemu jugemu gokou no surikire...'
}
f = File.open('hoge.gz', 'w')
gz = Zlib::GzipWriter.new(f)
gz.write 'jugemu jugemu g...