加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 覆盖反推

发布时间:2020-12-17 02:20:12 所属栏目:百科 来源:网络整理
导读:所以我希望覆盖测试文件中的反引号,并将其应用于测试期间调用的所有脚本.测试文件使用了几个类(保存在其他文件中),当这些类使用反引号时,我在测试文件中的覆盖不适用. 例如以下是测试文件(tc_some_test.rb) module BacktickURI def `(uri) # `untrick beauti
所以我希望覆盖测试文件中的反引号,并将其应用于测试期间调用的所有脚本.测试文件使用了几个类(保存在其他文件中),当这些类使用反引号时,我在测试文件中的覆盖不适用.

例如以下是测试文件(tc_some_test.rb)

module BacktickURI
  def `(uri)
    # `untrick beautifier
    puts "uri = #{uri}n"
    if uri =~ /some command/
      puts "command ran #{uri}n"
    else
      system("#{uri} 2>&1")
    end
  end
end

include BacktickURI

对于tc_some_test.rb中使用的所有反引号,这是有效的,但被调用的外部类和脚本仍然使用正常的,非重写的反引号.

任何帮助表示赞赏.替代方法可以是从一个不同的脚本/文件覆盖一个脚本/文件中的方法的方法.

解决方法

输入irb:

define_singleton_method '`' do |*| puts 'kokot' end

`ls`
#=> kokot

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读