有没有办法避免使用某个名称定义方法?

saw*_*awa 4 ruby methods

例如,有没有办法避免(在尝试时引发错误)定义具有特定名称的方法Foo#bar?(一个用例Foo#bar就是已定义的时候,我想避免重写该方法,但这与问题无关.)我假设:

class Foo
  prohibit_definition :bar
end

...
# Later in some code

class Foo
  def bar
    ...
  end
end
# => Error: `Foo#bar' cannot be defined
Run Code Online (Sandbox Code Playgroud)

Sha*_*cci 5

class Class
  def method_added(method_name)
    raise "So sad, you can't add" if method_name == :bad
  end
end

class Foo
  def bad
    puts "Oh yeah!"
  end
end

#irb> RuntimeError: So sad, you can't add
#   from (irb):3:in `method_added'
#   from (irb):7
Run Code Online (Sandbox Code Playgroud)