るりまサーチ

最速Rubyリファレンスマニュアル検索!
66件ヒット [1-66件を表示] (0.057秒)
トップページ > クエリ:Class#new[x] > クエリ:extend[x] > ライブラリ:forwardable[x]

別のキーワード

  1. << rexml::attribute#name
  2. add rexml::attribute#name
  3. handle_interrupt thread#raise
  4. oid= openssl::x509::extension#oid
  5. oid openssl::x509::extension#oid=

検索結果

Forwardable (14.0)

クラスに対し、メソッドの委譲機能を定義するモジュールです。

...るモジュールです。

=== 使い方

クラスに対して Object#extend して使います。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 ...
f.gets
f.content_at(1)...

Forwardable#def_delegator(accessor, method, ali = method) -> () (14.0)

メソッドの委譲先を設定します。

...require 'forwardable'
class
MyQueue
extend
Forwardable
attr_reader :queue
def initialize
@queue = []
end

def_delegator :@queue, :push, :mypush
end

q = MyQueue.new
q.mypush 42
q.queue # => [42]
q.push 23 # => NoMethodError

@see Forwardable#def_delegato...

Forwardable#def_instance_delegator(accessor, method, ali = method) -> () (14.0)

メソッドの委譲先を設定します。

...require 'forwardable'
class
MyQueue
extend
Forwardable
attr_reader :queue
def initialize
@queue = []
end

def_delegator :@queue, :push, :mypush
end

q = MyQueue.new
q.mypush 42
q.queue # => [42]
q.push 23 # => NoMethodError

@see Forwardable#def_delegato...

Forwardable#delegate(hash) -> () (14.0)

メソッドの委譲先を設定します。

...指定します。


例:

require 'forwardable'
class
Zap
extend
Forwardable
delegate :length => :@str
delegate [:first, :last] => :@arr
def initialize
@arr = %w/foo bar baz/
@str = "world"
end
end

zap = Zap.new
zap.length # => 5
zap.first # =>...

Forwardable#instance_delegate(hash) -> () (14.0)

メソッドの委譲先を設定します。

...指定します。


例:

require 'forwardable'
class
Zap
extend
Forwardable
delegate :length => :@str
delegate [:first, :last] => :@arr
def initialize
@arr = %w/foo bar baz/
@str = "world"
end
end

zap = Zap.new
zap.length # => 5
zap.first # =>...

絞り込み条件を変える

SingleForwardable (14.0)

オブジェクトに対し、メソッドの委譲機能を定義するモジュールです。

... extend して使います。

例:

require 'forwardable'
g = Goo.new
g.extend SingleForwardable
g.def_delegator("@out", :puts)
g.puts ...

また、SingleForwardable はクラスやモジュールに対して以下のようにする事もできます。

require 'forwardable'
class
I...
...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_...