Sha256: 9b9fe197e519dc4188343ec7cf7f4bf9107f1a77cc59fffa79bd438fc865b2a8
Contents?: true
Size: 778 Bytes
Versions: 68
Compression:
Stored size: 778 Bytes
Contents
module FlydataCore module WrapperSingleForwardable # Delegates a method call `delegator` to the given `accessor` like the # original `def_single_delegator` does. In addition, it wraps the returned # object (or each object in an array) with the caller's own instance. def def_wrapper_single_delegator(accessor, delegator) self.define_singleton_method(delegator) do |*args| result = accessor.send(delegator, *args) case result when Array result.collect{|res| self.new(res)} when NilClass nil else self.new(result) end end end def def_wrapper_single_delegators(accessor, *delegators) delegators.each do |delegator| def_wrapper_single_delegator(accessor, delegator) end end end end
Version data entries
68 entries across 68 versions & 1 rubygems