Skip to content

Instantly share code, notes, and snippets.

/proxy.rb Secret

Created September 25, 2015 10:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/dd7ddb6e301ba18caa1a to your computer and use it in GitHub Desktop.
Save anonymous/dd7ddb6e301ba18caa1a to your computer and use it in GitHub Desktop.
kind of a proxy - relay . an adapter
class Foo
attr_reader :a, :b
def initialize params={}
params.each {
|k,v|
instance_variable_set "@#{k}", v
}
end
def yay; puts "Yay"; end
end
class FooProxy
attr_accessor :foo
def initialize(params={})
@foo = params["foo"] || Foo.new(params)
end
def method_missing(meth, *args, &bl)
if @foo.respond_to?(meth); @foo.send(meth);else; puts "#{meth} does_not exist";end
end
end
#### main
p = FooProxy.new(a: 1, b: 2)
%w{a b yay}.each{
|meth| p.send(meth)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment