Sha256: 6662321a1dd667eb31ec1800f70de473727d2fdfef37af6a86a5ec1c4d96169b
Contents?: true
Size: 550 Bytes
Versions: 1
Compression:
Stored size: 550 Bytes
Contents
class ConcernedInheritance::Delegator < BasicObject attr_reader :baseclass, :subclass def initialize(baseclass, subclass, callback) @baseclass = baseclass @subclass = subclass if !callback.is_a?(::Proc) raise ::ArgumentError, "#{callback} must be a proc" elsif (-1..0).cover?(callback.arity) instance_eval(&callback) else raise ::ArgumentError, "#{callback} must have an arity of 0, got #{callback.arity}" end end def method_missing(m, *args, &block) subclass.send m, *args, &block end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
concerned_inheritance-0.0.2 | lib/concerned_inheritance/delegator.rb |