ライブラリ
- ビルトイン (271)
- csv (12)
- date (24)
- delegate (12)
-
drb
/ acl (12) -
drb
/ timeridconv (12) - erb (12)
- fiddle (24)
- ipaddr (12)
- logger (1)
- monitor (24)
-
net
/ http (12) -
net
/ telnet (2) - openssl (120)
- optparse (12)
- ostruct (12)
- pathname (12)
- prettyprint (12)
- pstore (12)
- psych (60)
-
rake
/ testtask (12) -
rdoc
/ markup (12) -
rdoc
/ rdoc (12) - resolv (12)
- rexml (12)
-
rexml
/ document (120) -
rinda
/ rinda (24) -
rinda
/ tuplespace (12) -
ripper
/ filter (12) - rss (60)
-
rubygems
/ version (12) - socket (12)
- stringio (12)
- strscan (12)
- thread (6)
- timeout (12)
- weakref (12)
-
webrick
/ httpauth / basicauth (12) -
webrick
/ httpauth / digestauth (12) -
webrick
/ httpauth / htdigest (12) -
webrick
/ httpauth / htpasswd (12) -
webrick
/ httpproxy (12) -
webrick
/ httpserver (12) -
webrick
/ httpservlet / abstract (12) -
webrick
/ server (24) - win32ole (96)
- zlib (24)
キーワード
- ACL (12)
- AbstractServlet (12)
- Application (1)
- ArgumentError (12)
- BasicAuth (12)
- BasicObject (12)
- BlockCaller (12)
- CSV (12)
- CategoryBase (12)
- Cipher (12)
- Closure (12)
- Comment (12)
- ConditionVariable (24)
- Cookie (12)
- DH (12)
- DSA (12)
- Daemon (12)
- Data (9)
- Date (12)
- DateTime (12)
- DayBase (12)
- Default (12)
- Digest (12)
- DigestAuth (12)
- ERB (12)
- EXXX (12)
- Emitter (12)
- Entity (12)
- Enumerator (12)
- Error (12)
- ExtensionFactory (12)
- ExternalEntity (12)
- Fiber (12)
- Filter (12)
- GzipReader (12)
- GzipWriter (12)
- HTTPProxyServer (12)
- HTTPRequest (12)
- HTTPServer (12)
- HourBase (12)
- Htdigest (12)
- Htpasswd (12)
- IPAddr (12)
- Instruction (12)
- ItemBase (12)
- Location (12)
- Markup (12)
- Method (12)
- Monitor (12)
- NotationDecl (12)
- OpenStruct (12)
- OptionParser (12)
- PKey (12)
- PStore (12)
- ParseException (12)
- Parser (12)
- Pathname (12)
- Pretty (12)
- PrettyPrint (12)
- Proc (12)
- Queue (12)
- RDoc (12)
- RSA (12)
- Range (12)
- Rational (12)
- Regexp (12)
- Request (12)
- Resolv (12)
- SSLServer (12)
- SSLSocket (12)
- Set (3)
- SimpleDelegator (12)
- SimpleRenewer (12)
- SimpleServer (12)
- SizedQueue (12)
- Socket (12)
- Stat (12)
- Stream (12)
- StringIO (12)
- StringScanner (12)
- Struct (12)
- Symbol (1)
- Telnet (2)
- Template (12)
- TestTask (12)
- Thread (12)
- ThreadGroup (12)
- TimerIdConv (12)
- TracePoint (12)
- Transitive (12)
- TreeBuilder (12)
- TreeParser (12)
- TupleSpace (12)
- UnboundMethod (12)
- UndefinedConversionError (12)
- Version (12)
- WIN32OLE (12)
-
WIN32OLE
_ EVENT (12) -
WIN32OLE
_ METHOD (12) -
WIN32OLE
_ PARAM (12) -
WIN32OLE
_ TYPE (12) -
WIN32OLE
_ TYPELIB (12) -
WIN32OLE
_ VARIABLE (12) -
WIN32OLE
_ VARIANT (12) - WeakRef (12)
- XMLDecl (12)
- XMLStyleSheet (12)
- YAMLTree (12)
- Yielder (12)
検索結果
-
Rinda
:: SimpleRenewer (6001.0) -
シンプルな renewer で renewer のサンプル実装です。
...ルな renewer で renewer のサンプル実装です。
Rinda::TupleSpace が保持するタプルの有効期限を更新するクラスです。
このクラスはタプルの寿命をプロセスの寿命と一致させることができます。
詳しくは Rinda::TupleSpace#renewer を見... -
Proc (97.0)
-
ブロックをコンテキスト(ローカル変数のスコープやスタックフ レーム)とともにオブジェクト化した手続きオブジェクトです。
...持していることは以下の例で
変数 var を参照できていることからわかります。
//emlist[例][ruby]{
var = 1
$foo = Proc.new { var }
var = 2
def foo
$foo.call
end
p foo # => 2
//}
===[a:should_use_next] 手続きを中断して値を返す
手続きオブジェ......all)
へジャンプし値を返すには next を使います。break や return ではありません。
//emlist[例][ruby]{
def foo
f = Proc.new{
next 1
2 # この行に到達することはない
}
end
p foo().call #=> 1
//}
===[a:block] Proc オブジェク......{ break }
//}
//emlist[LocalJumpError が発生します。][ruby]{
pr = Proc.new { break }
(1..5).each(&pr)
//}
===[a:lambda_proc] lambda と proc と Proc.new とイテレータの違い
Kernel.#lambda と Proc.new はどちらも Proc クラスのインスタンス(手続きオブジェクト... -
Thread
:: ConditionVariable (49.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...レッド a に対して条件が成立したことを通知します。これが典型的な
使用例です。
mutex = Mutex.new
cv = ConditionVariable.new
a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(m......tion Variable を使って wait しています。
require 'thread'
class TinyQueue
def initialize(max=2)
@max = max
@full = ConditionVariable.new
@empty = ConditionVariable.new
@mutex = Mutex.new
@q = []
end
def count
@q.size
end
def e......E__ == $0
q = TinyQueue.new(1)
foods = 'Apple Banana Strawberry Udon Rice Milk'.split
l = []
th = Thread.new {
for obj in foods
q.send(obj)
print "sent ", obj, "\n"
end
q.send nil
}
l.push th
th = Thread.new {
while obj = q.recv... -
Fiber (37.0)
-
ノンプリエンプティブな軽量スレッド(以下ファイバーと呼ぶ)を提供します。 他の言語では coroutine あるいは semicoroutine と呼ばれることもあります。 Thread と違いユーザレベルスレッドとして実装されています。
...= 例外
ファイバー実行中に例外が発生した場合、親ファイバーに例外が伝播します。
//emlist[例:][ruby]{
f = Fiber.new do
raise StandardError, "hoge"
end
begin
f.resume # ここでも StandardError が発生する。
rescue => e
p e.message #=> "hoge"
end
//......他のルーチンにコンテキストを切り替え、またそのポイントから再開する
という目的のために使います。
Fiber.new により与えられたブロックとともにファイバーを生成します。
生成したファイバーに対して Fiber#resume を呼ぶ......キストを切り替えます。
Fiber.yield の引数が、親での Fiber#resume の返り値になります。
//emlist[例:][ruby]{
f = Fiber.new do
n = 0
loop do
Fiber.yield(n)
n += 1
end
end
5.times do
p f.resume
end
#=> 0
1
2
3
4
//}
以下は内部イテレ... -
Fiddle
:: Closure (37.0) -
コールバック関数を表すクラスです。
...を作って
そのサブクラスに call メソッドを定義し、
new でオブジェクトを生成することで利用します。
require 'fiddle'
include Fiddle # TYPE_* を使うために include する
class Compare < Fiddle::Closure
# qsort の比較関数は 型が int(......s = Fiddle::Function.new(libc["qsort"],
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP],
TYPE_VOID)
s = "7x0cba(Uq)"
qs.call(s, s.size, 1, Compare.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP]))
p s # => "()07Uabcqx"
Class.new を使うことで......できます。
require 'fiddle'
include Fiddle # TYPE_* を使うために include する
compare = Class.new(Fiddle::Closure){
def call(x, y)
x.to_s(1) <=> y
end
}.new(TYPE_INT, [TYPE_VOIDP, TYPE_VOIDP])
単に Ruby のブロックを C の(コールバック)関数に変換... -
Method (37.0)
-
Object#method によりオブジェクト化され たメソッドオブジェクトのクラスです。
...くと言えます。
既存のメソッドを Method オブジェクト化する。
//emlist[例][ruby]{
class Foo
def foo(arg)
"foo called with arg #{arg}"
end
end
m = Foo.new.method(:foo)
p m # => #<Method: Foo#foo>
p m.call(1) # => "foo called with arg 1"
//}
名前......//emlist[例][ruby]{
pr = Proc.new {|arg|
"proc called with arg #{arg}"
}
p pr # => #<Proc:0x401b1fcc>
p pr.call(1) # => "proc called with arg 1"
//}
Method オブジェクトが有用なのは以下のような場合。
//emlist[例][ruby]{
class Foo
def foo() "foo" end
def......bar() "bar" end
def baz() "baz" end
end
obj = Foo.new
# 任意のキーとメソッドの関係をハッシュに保持しておく
methods = {1 => obj.method(:foo),
2 => obj.method(:bar),
3 => obj.method(:baz)}
# キーを使って関連するメソッドを呼び出す... -
Net
:: Telnet (37.0) -
このクラスは telnet のクライアント機能を提供します。
...ル経由で
コマンドを実行することを考えてみましょう。
これを Net::Telnet で実現するためには、
まず Net::Telnet.new に "Host" オプションを
与えてオブジェクトを作り、 Net::Telnet#login で
ユーザ名とパスワードを送ってログイン......::Telnet のオブジェクトは SMTP や HTTP のような telnet で
ないサービスにも利用できます。この場合には
Net::Telnet.new に "Port" オプションを与えることで
ポートを指定する必要があるでしょう。また、
"Telnetmode" オプションに fal......く動かないので、認証をプログラマ自身が実装
する必要があります。
通信プロトコルによっては、Net::Telnet.new に"Prompt"
を渡しておいて Net::Telnet#cmd をうまく動作させることが
できるかもしれません。
また、Net::Telnet#cmd を... -
REXML
:: Formatters :: Default (37.0) -
XMLドキュメントを(文字列として)出力するクラスです。
...ument.new <<EOS
<root>
<children>
<grandchildren/>
</children>
</root>
EOS
default_formatter = REXML::Formatters::Default.new
output = StringIO.new
default_formatter.write(doc, output)
output.string
# => "<root>\n<children>\n <grandchildren/>\n</children>\n</root>\n"
output = StringIO.new
defau......, "/root/children"), output)
output.string
# => "<children>\n <grandchildren/>\n</children>"
ie_hack_formatter = REXML::Formatters::Default.new(true)
output = StringIO.new
ie_hack_formatter.write(doc, output)
output.string
# => "<root>\n<children>\n <grandchildren />\n</children>\n</root>\n"
//}... -
Range (37.0)
-
範囲オブジェクトのクラス。 範囲オブジェクトは文字どおり何らかの意味での範囲を表します。数の範囲はもちろん、 日付の範囲や、「"a" から "z" まで」といった文字列の範囲を表すこともできます。
...ブジェクトは、Range.new を用いるほか、範囲演算子(`..' または `...')を
用いた d:spec/operator#range で生成できます。
いずれの方法でも始端と終端を与えます。
//emlist[範囲オブジェクトの例][ruby]{
Range.new(1, 5) # 1 以上 5 以下
1........オブジェクト」
を作ることができるようになりました。
//emlist[終端を持たない範囲オブジェクト][ruby]{
p Range.new(1, nil) # 1 以上(上限無し)を表す
p(1..nil) # 同上
p(1..) # 同上(略した書き方)
//}
また、Ruby......オブジェクト」
を作ることもできるようになりました。
//emlist[始端を持たない範囲オブジェクト][ruby]{
p Range.new(nil, 5) # 5 以下(下限無し)を表す
p(nil..5) # 同上
p(..5) # 同上(略した書き方)
//}
始端も終... -
MonitorMixin
:: ConditionVariable (33.0) -
MonitorMixin と Monitor のための 条件変数クラスです。 MonitorMixin#new_cond が返します。ユーザが MonitorMixin::ConditionVariable.new を直接呼ぶことはありません。
...MonitorMixin と Monitor のための
条件変数クラスです。
MonitorMixin#new_cond が返します。ユーザが
MonitorMixin::ConditionVariable.new を直接呼ぶことはありません。...