从另一个模块覆盖模块方法

2023-12-24

我想从另一个模块 B 重写模块 A 的方法,该方法将对 A 进行猴子补丁。
http://codepad.org/LPMCuszt http://codepad.org/LPMCuszt

module A
  def foo; puts 'A' end
end

module B
  def foo; puts 'B'; super; end
end

A.module_eval { include B } # why no override ???

class C
  include A
end

# must print 'A B', but only prints 'A' :(
C.new.foo

module A
  def foo
    puts 'A'
  end
end

module B
  def foo
    puts 'B'
    super
  end
end

include A # you need to include module A before you can override method

A.module_eval { include B }

class C
  include A
end

C.new.foo # => B A
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从另一个模块覆盖模块方法 的相关文章

随机推荐

  • mybatis中返回HashMap,并在spring MVC中作为ModelAttribute使用

    我想使用 spring mvc modelAttribute 在 Jsp 页面中显示类别列表 在我的 mapper xml 文件中是
  • 使用 Newtonsoft 在 C# 中通过 JSON 模式验证 JSON

    使用 JSON Schema 验证 JSON 返回值始终为 true 使用Newtonsoft进行验证和测试here https www jsonschemavalidator net 与模式和数据 它总是返回 未发现错误 JSON 根据模
  • 在字符串中使用空字符 (C++)

    我正在温习 C 偶然发现了关于字符串 字符数组和空字符的奇怪行为 0 下面的代码 include
  • 有哪些优秀的 Ruby on Rails 博客? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我 6 个月前开始学习 Rails 到目前为止我很喜欢它背后的社区 有大量的论坛和文档资源可供使用 但
  • 如果流没有返回结果,Java 8 抛出异常[重复]

    这个问题在这里已经有答案了 我很好奇是否可以在以下情况下使用 orElseThrow 或者是否有更多 Java 8 方法来执行与 1 liner 相同的操作 Collection
  • 在页面关闭之前执行 JS 函数 |重定向[重复]

    这个问题在这里已经有答案了 问题 我正在使用 ASP NET Web 表单 C 我需要在页面关闭之前执行 JS 函数 无论以何种方式关闭 作为重定向或任何其他方法 额外信息 作为一些额外的信息 该函数将是到不同页面的 HTTP POST 我
  • git pull 通过 PHP exec IIS

    这是我经历过的最难诊断的问题 我似乎无法调用 exec call git pull output 该进程挂起 并且往往会导致 IIS 一起挂起 exec call git status output works fine 这是我所做的 生成
  • 如何找到 JXA 对象上的所有方法?

    我试图列出 JXA 对象的所有方法 我尝试了几种在浏览器中使用 JavaScript 的方法 但没有一个有效 gt gt Object getOwnPropertyNames Application Finder selection 0 g
  • ProgressBar Circle 在 android L (API 21) 上显示没有进度

    我有一个圆形进度条来倒计时 它在 kitkat 和之前的版本上完美运行 但在 android L 上 无论我设置什么进度 它总是显示一个完整的圆圈 Image http youspeakschwaebisch de progressbar
  • 在 XPath 中获取以下兄弟姐妹?

    我正在努力抓住li下面的类文本基于包含某个单词的树中较高的强标记 在本例中为 restaurants p class The location where the condo is situated offers a good choice
  • 使用 dlopen() 加载时解决动态库依赖关系

    我在加载动态库时遇到了问题dlopen 我尝试加载一个库 handle dlopen libmkl intel lp64 so RTLD LAZY 此代码失败并显示以下消息dlerror opt intel composer xe 2013
  • 预填充 WebView 文本字段

    我需要预先填写文本字段UIWebView我明白javascript是解决这个问题的最好方法 不幸的是我一无所知javascript在过去的几个小时里一直在摸索 一无所获 最新的拙劣尝试 void webViewDidFinishLoad U
  • 删除的指针指向什么?

    int a nullptr NULL before C 11 a new int 1 delete a 什么是a指向现在 它是否指向nullptr或者它是否指向被删除之前所指向的地址 其他一些答案错误地表示 该值不会改变 但确实如此 删除前
  • MVVM INotifyPropertyChanged - 线程问题?

    我刚刚开始学习 MVVM 和 WPF 很抱歉提出了愚蠢的问题 我正在使用不同的教程和示例来学习 并且我遇到了这个例子 http www codeproject com Articles 165368 WPF MVVM Quick Start
  • XMLHttpRequest POST 并在新窗口/选项卡中打开目标页面

    如何模拟Form的 POST 行动与target blank in XMLHttpRequest 即发布数据并在新选项卡中打开目标页面 gBrowser开箱即用地提供此功能 var dataStream Cc mozilla org io
  • 在 div 内仅将文本换行两行

    我想将文本包装在特定宽度的 div 内的两行内 如果文本超出两行的长度 那么我想显示省略号 有没有办法使用 CSS 来做到这一点 e g Sample text showing wrapping of text in only two li
  • Angular/Rxjs 管道异步不适用于 ssr?

    我在 SSR 上运行的异步管道有问题 没有错误 只有无限循环 似乎服务器正在等待可观察的结果被解析 我在用 nestjs ng universal 角9 火力基地 Rxjs 像这样的简单案例有效 p observable async p 但
  • Swift2 UI 测试 - 等待元素出现

    我想暂停测试并等待屏幕上出现某个元素 然后再继续 我没有看到一个好的方法来对此产生期望并等待使用 public func waitForExpectationsWithTimeout timeout NSTimeInterval handl
  • 如何在 Flask 路由启动之前运行函数?

    我需要在 Flask 路由开始工作之前执行调用功能 我应该在哪里放置函数以使其在服务启动时调用 我做了 app Flask name def checkIfDBExists it is my function if not DBFullPa
  • 从另一个模块覆盖模块方法

    我想从另一个模块 B 重写模块 A 的方法 该方法将对 A 进行猴子补丁 http codepad org LPMCuszt http codepad org LPMCuszt module A def foo puts A end end