概要
動的プロキシ
内容
どのメソッドにも当てはまらないメッセージを他のオブジェクトに転送します。
サンプル
# encoding: utf-8 require "date" require "pp" class DynamicProxy attr_accessor :proxies def initialize(*proxies) @proxies = proxies end def hoge puts "hoge" end def method_missing(method_name, *args, &block) @proxies.each do |p| return p.__send__(method_name, *args, &block) if p.respond_to? method_name end super end end class ProxyHage def self.hage puts "hage" end end class ProxyHige def self.hige puts "hige" end end dp = DynamicProxy.new(ProxyHage, ProxyHige) dp.hoge dp.hage dp.hige # dp.hege => `method_missing': undefined method `hege'
出力
hoge hage hige