gpt4 book ai didi

ruby-on-rails - Monkey(也许?)在我的 Rails 应用程序中修补一个 Gem

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

我对术语有 100% 的把握,这对 Rails 世界来说仍然相对较新,所以请原谅,如果我对 monkey patch 的理解太远,这可能不适用于这种情况。

我正在使用一个 gem,LongURL,它可以延长缩短的 url。默认情况下,gem 使用 longurl.org,但我们每天通过它推送几十万个 url,并认为每个人都在内部提供该服务会更好。我只需要更改 2 个常量以指向我自己的 url。

module LongURL
ShortURLMatchRegexp = /http:\/\/[\/\-_.a-z0-9]+/im

# Urls for longurl
EndPoint = URI.parse("http://api.longurl.org/v1/expand")
ServiceEndPoint = URI.parse("http://api.longurl.org/v1/services")
end

这样的小改动似乎不值得 fork ,有哪些好的 Rails 惯用方法?进行这样的小改动的方法?

谢谢

最佳答案

当您重新定义常量时,您需要先删除旧的,然后重新应用新的。您的补丁可能如下所示:

module LongURL
remove_const(:ShortURLMatchRegexp)
ShortURLMatchRegexp = /http:\/\/[\/\-_.a-z0-9]+/im

# ... (etc) ...
end

这应该有助于避免关于重新定义现有常量的警告。

就让它成为 Railsy 而言,将它放入 config/initializers 并确保它被清楚地标记,也许是 longurl_monkeypatch.rb 这样就不会混淆是什么类型的黑客攻击正在进行中。

关于ruby-on-rails - Monkey(也许?)在我的 Rails 应用程序中修补一个 Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668075/

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