RubyでProxyInstanceの生成
Rubyはリフレクションが簡単にできると思い,ためしにProxyInstanceを生成するクラスを作ってみた.
code
class Proxy def initialize obj (class << self; self end).class_eval do obj.methods.each do |method| define_method method do |*args| obj.send method,*args end end obj.private_methods.each do |method| define_method method do |*args| obj.send method,*args end end end end end
option:enable
title:proxy.rb
実行結果
proxy = Proxy.new 'string' p proxy # => "string" p proxy.length # => 5
option:enable
style:flat-line
title:result
これにより
methodをhookするのは楽そうだとわかってよかった.