66件ヒット
[1-66件を表示]
(0.086秒)
ライブラリ
- forwardable (11)
- json (22)
- monitor (11)
- resolv (11)
- singleton (11)
キーワード
- IN (11)
- MonitorMixin (11)
- NilClass (22)
- SingleForwardable (11)
- Singleton (11)
検索結果
先頭5件
-
JSON
:: Ext :: Generator :: GeneratorMethods :: NilClass (12001.0) -
Alias of JSON::Generator::GeneratorMethods::NilClass
...Alias of JSON::Generator::GeneratorMethods::NilClass... -
JSON
:: Generator :: GeneratorMethods :: NilClass (12001.0) -
NilClass に JSON で使用するインスタンスメソッドを追加するためのモジュールです。
...NilClass に JSON で使用するインスタンスメソッドを追加するためのモジュールです。... -
Singleton (6013.0)
-
Singleton パターンを提供するモジュールです。
...ingleton パターンを提供するモジュールです。
Mix-in により singleton パターンを提供します。
Singleton モジュールを include することにより、クラスは
高々ひとつのインスタンスしか持たないことが保証されます。
Singleton を Mi......x-in したクラスの
クラスメソッド instance はその唯一のインスタンスを返します。
new は private メソッドに移され、外部から呼び出そうとするとエラーになります。
=== サンプルコード
require 'singleton'
class SomeSingletonClass......include Singleton
#....
end
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... -
MonitorMixin (6007.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列......ynchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ
print buf.shift # 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end
# producer
while line = A......その initialize は引数を受け付けないので
super ではなく super() を呼ぶ必要があります。
//emlist[include する例][ruby]{
require 'monitor'
class MyObject
include MonitorMixin
def initialize(val)
super()
@value = val
end
def to_s
synchronize {... -
Resolv
:: DNS :: Resource :: IN (6007.0) -
DNS のインターネットクラスリソースを表すモジュールです。
...DNS のインターネットクラスリソースを表すモジュールです。
インターネットクラスリソースを利用する class に
mixinして利用します。... -
SingleForwardable (6007.0)
-
オブジェクトに対し、メソッドの委譲機能を定義するモジュールです。
...require 'forwardable'
g = Goo.new
g.extend SingleForwardable
g.def_delegator("@out", :puts)
g.puts ...
また、SingleForwardable はクラスやモジュールに対して以下のようにする事もできます。
require 'forwardable'
class Implementation
def self.service......puts "serviced!"
end
end
module Facade
extend SingleForwardable
def_delegator :Implementation, :service
end
Facade.service # => serviced!
もし Forwardable と SingleForwardable の両方を使いたい場合、
def_instance_delegator と def_single_delegator メソッ...