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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |