gpt4 book ai didi

ruby - 如何正确地对 Ruby 进行 monkeypatch?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:38 24 4
gpt4 key购买 nike

我正在尝试对标准库中 Net 类中的一行进行 monkeypatch。我在项目的 lib 文件夹中创建了一个名为 patches.rb 的文件并添加了这个

module Net
class HTTP < Protocol
module HTTPHeader
def initialize_http_header(initheader)
@header = {}
return unless initheader
initheader.each do |key, value|
@header[key.downcase] = [value.strip] rescue ""
end
end
end
end
end

但它不起作用。我这样做对吗? (这与继承层次结构完全平行。)

编辑:部分问题是我必须将文件放在 initalizers 文件夹中。但仍然看到相同的错误。

最佳答案

因为 lib/ 目录中的东西只按需加载,你可能会更成功地将这样的补丁放在 config/initializers/ 中,它们会在之后自动加载堆栈已初始化。

您还可以将扩展的定义折叠成这样:

module Net::HTTP::HTTPHeader
# ... (redefined methods) ...
end

关于ruby - 如何正确地对 Ruby 进行 monkeypatch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com