将私有或受保护的方法转换为公共方法

syn*_*pse 0 ruby metaprogramming

可以使用调用私有方法,send但是有没有办法以某种方式对类进行猴子修补以常规方式调用它?

syn*_*pse 10

Module#public就可以了。

class Foo
  private
  def hello
    "hello"
  end
end

class Foo
  public :hello
end
Run Code Online (Sandbox Code Playgroud)