ライブラリ
-
bigdecimal
/ newton (11) - forwardable (22)
- monitor (11)
-
mutex
_ m (11) - observer (11)
- openssl (22)
- psych (11)
-
rexml
/ streamlistener (11) - singleton (11)
キーワード
- ASN1 (11)
- Forwardable (11)
- MonitorMixin (11)
-
Mutex
_ m (11) - Newton (11)
- Nodes (11)
- OCSP (11)
- Observable (11)
- SingleForwardable (11)
- Singleton (11)
- StreamListener (11)
検索結果
-
Newton (6001.0)
-
ニュートン法を用いて非線形方程式 f の解 x を求める機能を提供するモジュー ルです。
ニュートン法を用いて非線形方程式 f の解 x を求める機能を提供するモジュー
ルです。 -
OpenSSL
:: ASN1 (55.0) -
ASN.1(Abstract Syntax Notation One) のデータを取り扱うためのモジュールです。
...tring.new("foobar")
# 構造型のデータ
y = OpenSSL::ASN1::Sequence.new([OpenSSL::ASN1::Boolean.new(true),
OpenSSL::ASN1::Integer.new(-12)])
# APPLICATION タグクラスのタグ2番でタグ付けられたデータ
z = OpenSSL::ASN1::ASN1Data.new([Open......SSL::ASN1::Boolean.new(false)],
2, :APPLICATION)
# 上と同様のデータを OpenSSL::ASN1::Boolean.new の2番目以降の
# 引数で表現する
z2 = OpenSSL::ASN1::Boolean.new(false, 2, :EXPLICIT, :APPLICATION)
# IMPLICIT なタグ付けをする
u......= OpenSSL::ASN1::Boolean.new(false, 3, :IMPLICIT, :APPLICATION)
# to_der でエンコード
x.to_der # => "\f\x06foobar"
y.to_der # => "0\x06\x01\x01\xFF\x02\x01\xF4"
z.to_der # => "b\x03\x01\x01\x00"
z2.to_der # => "b\x03\x01\x01\x00" これは z.to_der と同じ
u.to_der # => "C\x... -
OpenSSL
:: OCSP (25.0) -
OCSP(Online Certificate Status Protocol)を取り扱うための モジュールです。OCSP は 2560 で定義されています。
...ト)
store # 信頼している証明書ストア
cid = OpenSSL::OCSP::CertificateId.new(subject, issuer)
req = OpenSSL::OCSP::Request.new
req.add_certid(cid)
req.add_nonce
http = Net::HTTP.new('ocsp.example.com', 80)
httpres = http.post("/", req.to_der, 'content-type' => 'applicati......on/ocsp-request')
raise "HTTP error" if !httpres.kind_of?(Net::HTTPOK)
res = OpenSSL::OCSP::Response.new(httpres.body)
puts "Response status: #{res.status_string}"
exit if res.status != OpenSSL::OCSP::RESPONSE_STATUS_SUCCESSFUL
basic_resp = res.basic
raise "nonce error" unless [-1, 1... -
Psych
:: Nodes (25.0) -
Psych が中間データとして利用している AST (Abstract Syntax Tree) に 関するモジュール。
...トの AST を構築しています。
# Create our nodes
stream = Psych::Nodes::Stream.new
doc = Psych::Nodes::Document.new
seq = Psych::Nodes::Sequence.new
scalar = Psych::Nodes::Scalar.new('foo')
# Build up our tree
stream.children << doc
doc.children << seq
seq.child... -
Observable (19.0)
-
Observer パターンを提供するモジュールです。
...price > @limit
print "+++ #{time.to_s}: Price above #@limit: #{price}\n"
end
end
end
ticker = Ticker.new("MSFT")
WarnLow.new(ticker, 80)
WarnHigh.new(ticker, 120)
ticker.run
# => Current price: 126
# => +++ 2017-11-02 12:09:36 +0900: Price above 120: 126
# => Curr... -
Singleton (19.0)
-
Singleton パターンを提供するモジュールです。
...保証されます。
Singleton を Mix-in したクラスの
クラスメソッド instance はその唯一のインスタンスを返します。
new は private メソッドに移され、外部から呼び出そうとするとエラーになります。
=== サンプルコード
require 's......a = SomeSingletonClass.instance
b = SomeSingletonClass.instance # a and b are same object
p [a,b] # => [#<SomeSingletonClass:0x0000562e6e18ddd0>, #<SomeSingletonClass:0x0000562e6e18ddd0>]
a = SomeSingletonClass.new # => NoMethodError (private method `new' called for SomeSingletonClass:Class)... -
Mutex
_ m (13.0) -
スレッド同期機構である Thread::Mutex のモジュール版です。クラスに Module#include することでそのクラスに Mutex 機能を持たせることができます。 また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
...スレッド同期機構である Mutex のモジュール版です。クラスに
Module#include することでそのクラスに Mutex 機能を持たせることができます。
また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
このモジ......例
クラスに Module#include する例
require "mutex_m"
class Foo
include Mutex_m
...
end
obj = Foo.new
obj.synchronize do
# 危険領域(critical section)
...
end
オブジェクトに Object#extend する例
require "mutex_m"
obj = Object.new
obj.extend(Mut......スレッド同期機構である Thread::Mutex のモジュール版です。クラスに
Module#include することでそのクラスに Mutex 機能を持たせることができます。
また、普通のオブジェクトを Object#extend により Mutex にする事ができます。
この... -
Forwardable (7.0)
-
クラスに対し、メソッドの委譲機能を定義するモジュールです。
...ます。Module#include でないところに注意して下さい。
例:
require 'forwardable'
class Foo
extend Forwardable
def_delegators("@out", "printf", "print")
def_delegators(:@in, :gets)
def_delegator(:@contents, :[], "content_at")
end
f = Foo.new
f.printf .... -
MonitorMixin (7.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...スレッドの同期機構としてのモニター機能を提供するモジュールです。
クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費......者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
e......//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}
しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用する場合は、initialize メソッドで super() か super を呼んで、初期化する必要があります。... -
REXML
:: StreamListener (7.0) -
REXML::Parsers::StreamParser で使われるコールバックオブジェクトのためのモジュールです。
...ュールを include して、各メソッドを適切にオーバーライドした
クラスのインスタンスを
REXML::Parsers::StreamParser.new や
REXML::Document.parse_stream の引数として渡します。
このモジュールで定義されているメソッド自体は何もしま...