module Tins::Expose
def expose(method_name = nil, *args, &block)
-
(Object)
- result of the method or block call
Parameters:
-
block
(Proc
) -- any private/protected methods of the object can be -
method_name
(Symbol | String
) -- name of the method
def expose(method_name = nil, *args, &block) if block instance_eval(&block) elsif method_name.nil? methods = private_methods(true) + protected_methods(true) o = dup o.singleton_class.class_eval do public(*methods) end o elsif method_name __send__(method_name, *args) end end