class Sire::ImmutableDelegator
Attributes
obj[R]
Public Class Methods
new(obj)
click to toggle source
# File lib/sire/immutable_delegator.rb, line 3 def initialize(obj) @obj = obj end
Public Instance Methods
method_missing(*args, &b)
click to toggle source
Calls superclass method
# File lib/sire/immutable_delegator.rb, line 7 def method_missing(*args, &b) return super unless obj.respond_to?(args.first) res = obj.send(*args, &b) res.class == obj.class ? create_new(res) : res end
Private Instance Methods
create_new(res)
click to toggle source
# File lib/sire/immutable_delegator.rb, line 17 def create_new(res) self.class.new(res) end
respond_to_missing?(meth, privates = false)
click to toggle source
Calls superclass method
# File lib/sire/immutable_delegator.rb, line 21 def respond_to_missing?(meth, privates = false) obj.respond_to?(meth, privates) || super end