190件ヒット
[1-100件を表示]
(0.097秒)
ライブラリ
- ビルトイン (53)
- csv (11)
- logger (1)
- monitor (11)
-
net
/ telnet (2) - openssl (11)
- optparse (11)
- psych (11)
- rexml (11)
-
rexml
/ document (22) -
rubygems
/ version (11) - stringio (11)
- thread (2)
- zlib (22)
キーワード
- Application (1)
- CSV (11)
- ConditionVariable (22)
- ExtensionFactory (11)
- GzipReader (11)
- GzipWriter (11)
- Instruction (11)
- Location (11)
- NotationDecl (11)
- OptionParser (11)
- ParseException (11)
- Rational (11)
- Stream (11)
- StringIO (11)
- Telnet (2)
- Thread (11)
- UndefinedConversionError (11)
- Version (11)
検索結果
先頭5件
-
Thread
:: ConditionVariable (6049.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
...の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとし......リソースの空きを
待っていても、いつまでも空くことはありません。
以上のような状況を解決するのが Condition Variable です。
スレッド a で条件(リソースが空いているかなど)が満たされるまで wait メソッドで
スレッドを......レッド a に対して条件が成立したことを通知します。これが典型的な
使用例です。
mutex = Mutex.new
cv = ConditionVariable.new
a = Thread.start {
mutex.synchronize {
...
while (条件が満たされない)
cv.wait(m... -
StringIO (6035.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......E"
//}
=== 例外
StringIO オブジェクトは大抵の場合 IO オブジェクトと同じ例外を発生させます。
例えば次の例では write は IOError を発生させます。
//emlist[例][ruby]{
require "stringio"
sio = StringIO.new("hoge")
sio.close
sio.write("a")
# => in `writ......e': not opened for writing (IOError)
//}... -
MonitorMixin
:: ConditionVariable (6033.0) -
MonitorMixin と Monitor のための 条件変数クラスです。 MonitorMixin#new_cond が返します。ユーザが MonitorMixin::ConditionVariable.new を直接呼ぶことはありません。
...MonitorMixin と Monitor のための
条件変数クラスです。
MonitorMixin#new_cond が返します。ユーザが
MonitorMixin::ConditionVariable.new を直接呼ぶことはありません。... -
OpenSSL
:: X509 :: ExtensionFactory (6025.0) -
OpenSSL::X509::Extension を簡便に生成するための クラスです。
...SL::X509::Extension を簡便に生成するための
クラスです。
例
require 'openssl'
# ca_cert: CA の証明書オブジェクト
# req: CSR オブジェクト
# newcert: 新たに生成する証明書のオブジェクト
ca_cert = OpenSSL::X509::Certificate.new(File.read('ca_......m'))
req = OpenSSL::X509::Request.new(File.read('req.pem'))
newcert = OpenSSL::X509::Certificate.new
# 新しい ExtensionFactory オブジェクトを生成し、 CA の証明書オブジェクト
# を設定
factory = OpenSSL::X509::ExtensionFactory.new(ca_cert)
# CSR オブジェク......領域を生成
p factory.create_extension("basicConstraints", "CA:FALSE")
# => basicConstraints = CA:FALSE
# subjectKeyIdentifier 拡張領域を生成
# この値は CSR オブジェクトの公開鍵から生成される
p factory.create_extension("subjectKeyIdentifier", "hash")
# =>... -
Gem
:: Version (6019.0) -
文字列で表現されたバージョンを比較可能 (Comparable) にするためのクラスです。
...てしまい、
正しく判定できません。
Gem::Version はこの問題を解決します。
//emlist[文字列での比較と Gem::Version での比較][ruby]{
p "1.9" < "1.10" # => false
p Gem::Version.new("1.9") < Gem::Version.new("1.10") # => true
//}
gem のバージョンを取り扱......関係に使うこともできます。
//emlist[バージョン表記のソートの例][ruby]{
versions = %w[ 1.1 1.10 1.9 1.1.beta9 1.1.beta10 ]
p versions.sort_by{ |v| Gem::Version.new(v) }
# => ["1.1.beta9", "1.1.beta10", "1.1", "1.9", "1.10"]
//}
上の例で、"1.9" と "1.10" では... -
OptionParser (6013.0)
-
コマンドラインのオプションを取り扱うためのクラスです。
...ラスです。
オプションが指定された時に呼ばれるブロックを
OptionParser#on メソッドで登録していきます。
つまり、OptionParser を使う場合、基本的には
(1) OptionParser オブジェクト opt を生成する。
(2) オプションを取り扱う......ンを実際に parse する。
というような流れになります。
//emlist[][ruby]{
require "optparse"
ProgramConfig = Hash.new
opts = OptionParser.new
opts.on("-a"){|v| ProgramConfig[:a] = true } # オプション「-a」がコマンドラインで指定されていた場合の動作。......してから exit します。
: --version
OptionParser#ver を表示してから exit します。
OptionParser#ver が定義されていない場合は、そのようにエラーメッセージを出力して abort します。
オプション「--version」に「,」で区切られたクラ... -
Rational (6013.0)
-
有理数を扱うクラスです。
...様に Rational.new ではなく、 Kernel.#Rational を使用して
Rational オブジェクトを作成します。
//emlist[例][ruby]{
Rational(1, 3) # => (1/3)
Rational('1/3') # => (1/3)
Rational('0.33') # => (33/100)
Rational.new(1, 3) # => NoMethodError
//}
Rational オブ......ジェクトは常に既約(それ以上約分できない状態)である
事に注意してください。
//emlist[例][ruby]{
Rational(2, 6) # => (1/3)
Rational(1, 3) * 3 # => (1/1)
//}... -
Thread
:: Backtrace :: Location (6013.0) -
Ruby のフレームを表すクラスです。
..._locations から生成されます。
//emlist[例1][ruby]{
# caller_locations.rb
def a(skip)
caller_locations(skip)
end
def b(skip)
a(skip)
end
def c(skip)
b(skip)
end
c(0..2).map do |call|
puts call.to_s
end
//}
例1の実行結果:
caller_locations.rb:2:in `a'
caller_locations.rb......ocations.rb:8:in `c'
//emlist[例2][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.to_s
end
//}
例2の実行結果:
init.rb:4:in `initialize'
init.rb:8:in `new'... -
Encoding
:: UndefinedConversionError (6007.0) -
エンコーディング変換後の文字が存在しない場合に発生する例外。
...ndefinedConversionError: U+2603 from UTF-8 to EUC-JP
//}
変換が多段階でなされ、その途中で例外が生じた場合は、
例外オブジェクトが保持するエラー情報はその中間のものになります。
//emlist[例][ruby]{
ec = Encoding::Converter.new("ISO-8859-1",......-8 but not in EUC-JP.
rescue Encoding::UndefinedConversionError
p $!.source_encoding #=> #<Encoding:UTF-8>
p $!.destination_encoding #=> #<Encoding:EUC-JP>
p $!.source_encoding_name #=> "UTF-8"
p $!.destination_encoding_name #=> "EUC-JP"
puts $!.error_char.d... -
Logger
:: Application (6007.0) -
ユーザ定義のアプリケーションにログ機能を簡単に追加することができます。
...をインスタンス化して start メソッドを呼び出します。
例:
class FooApp < Application
def initialize(foo_app, application_specific, arguments)
super('FooApp') # Name of the application.
end
def run
...
log(WARN, 'warning', 'my_method1').......error('my_method2') { 'Error!' }
...
end
end
status = FooApp.new(....).start
=== 注意
このクラスは 2.2.0 で gem ライブラリとして切り離されました。2.2.0
以降ではそちらを利用してください。
* https://rubygems.org/gems/logger-application...