如何在控制台中“禁用” Ruby中的特定方法

单车轮胎

假设我有两种方法的ABC类。

class ABC
  def test
     "test"
  end

  def display_test
    puts test
  end
end

我只希望能够ABC.new.display_test从控制台(IRB)打电话(使我返回“测试”),而不能打电话ABC.new.testABC.new.send(:test)就此打电话这可能吗?如果是这样,怎么办?

达里乌斯爵士

最彻底的方法是拥有testprivate重写该send方法,以专门阻止对以下对象的调用test

class ABC
  def test
     "test"
  end

  private :test

  def display_test
    puts test
  end

  def send(id)
    if id == :test
      raise NoMethodError.new("error")
    else
      super(id)
    end
  end

  alias_method :__send__, :send
end

请注意,此send覆盖不正确,因为它仅接受一个参数。

如果以正确的方式进行操作,则可以执行以下操作:

ABC.new.send(:send, :test)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在控制台中读取特定的cookie

来自分类Dev

如何在python控制台中运行Odoo ORM方法?

来自分类Dev

如何在控制台中获取特定的控制器作用域列表-angularjs?

来自分类Dev

如何在控制台中禁用 CapsLock?

来自分类Dev

如何在控制台中访问Angular2组件特定的数据?

来自分类Dev

如何在控制台中每行打印特定数量的字符?

来自分类Dev

如何在私有方法的调试器控制台中打印自我

来自分类Dev

如何在Pry控制台中提供自定义方法

来自分类Dev

如何在Xcode 7.3中的控制台中访问“自我”

来自分类Dev

在python中运行Qt应用程序时如何在控制台中输入?

来自分类Dev

如何在Firefox的Firebug控制台中的HTML面板中激活CSS面板?

来自分类Dev

如何在RubyMotion中的REPL控制台中访问App :: Persistence

来自分类Dev

如何在C#控制台中的给定坐标中获取字符?

来自分类Dev

如何在bash /控制台中使用ImageMagick从图像中删除蓝色通道?

来自分类Dev

如何在Firefox的Firebag控制台中的HTML面板中激活CSS面板?

来自分类Dev

如何在MobileFabric控制台中创建的Kony Studio中调用集成服务?

来自分类Dev

如何在变量中重定向stderr但将stdout保留在控制台中

来自分类Dev

如何在pyqt中将数据库文件中的内容显示到控制台中

来自分类Dev

如何在angular4中获取控制台中的数据到HTML

来自分类Dev

我们如何在 gui 中而不是在控制台中打印代码的输出?

来自分类Dev

如何在vs2019 MVC Core 3.1中的Package Manager控制台中搭建控制器?

来自分类Dev

如何在Symfony控制台中禁用命令的输出?

来自分类Dev

如何在控制台中禁用MongoDB日志消息?

来自分类Dev

如何在SBT控制台中禁用警告

来自分类Dev

如何在WebStorm控制台中禁用换行?

来自分类Dev

如何从控制台中的字符串中删除字符

来自分类Dev

如何在管理控制台中阻止特定客户端的访问并吊销其已发行的令牌

来自分类Dev

如果HTML中包含JS函数,如何在浏览器控制台中使用所有JS函数?

来自分类Dev

在javascript中,如何在控制台中显示带有行尾字符的字符串保持“\n”

Related 相关文章

  1. 1

    如何在控制台中读取特定的cookie

  2. 2

    如何在python控制台中运行Odoo ORM方法?

  3. 3

    如何在控制台中获取特定的控制器作用域列表-angularjs?

  4. 4

    如何在控制台中禁用 CapsLock?

  5. 5

    如何在控制台中访问Angular2组件特定的数据?

  6. 6

    如何在控制台中每行打印特定数量的字符?

  7. 7

    如何在私有方法的调试器控制台中打印自我

  8. 8

    如何在Pry控制台中提供自定义方法

  9. 9

    如何在Xcode 7.3中的控制台中访问“自我”

  10. 10

    在python中运行Qt应用程序时如何在控制台中输入?

  11. 11

    如何在Firefox的Firebug控制台中的HTML面板中激活CSS面板?

  12. 12

    如何在RubyMotion中的REPL控制台中访问App :: Persistence

  13. 13

    如何在C#控制台中的给定坐标中获取字符?

  14. 14

    如何在bash /控制台中使用ImageMagick从图像中删除蓝色通道?

  15. 15

    如何在Firefox的Firebag控制台中的HTML面板中激活CSS面板?

  16. 16

    如何在MobileFabric控制台中创建的Kony Studio中调用集成服务?

  17. 17

    如何在变量中重定向stderr但将stdout保留在控制台中

  18. 18

    如何在pyqt中将数据库文件中的内容显示到控制台中

  19. 19

    如何在angular4中获取控制台中的数据到HTML

  20. 20

    我们如何在 gui 中而不是在控制台中打印代码的输出?

  21. 21

    如何在vs2019 MVC Core 3.1中的Package Manager控制台中搭建控制器?

  22. 22

    如何在Symfony控制台中禁用命令的输出?

  23. 23

    如何在控制台中禁用MongoDB日志消息?

  24. 24

    如何在SBT控制台中禁用警告

  25. 25

    如何在WebStorm控制台中禁用换行?

  26. 26

    如何从控制台中的字符串中删除字符

  27. 27

    如何在管理控制台中阻止特定客户端的访问并吊销其已发行的令牌

  28. 28

    如果HTML中包含JS函数,如何在浏览器控制台中使用所有JS函数?

  29. 29

    在javascript中,如何在控制台中显示带有行尾字符的字符串保持“\n”

热门标签

归档