将gems用于外部服务时,有时我不知道某个方法是访问该服务还是只返回一些本地计算。
一个例子 - 我使用的是图像托管服务(Cloudinary),它的API包含一个Ruby包装器。以下命令在提供image_id时返回托管图像的完整URL:
Cloudinary::Utils.cloudinary_url(image_id)
#=> "http://res.cloudinary.com/my_service/image/upload/v1/some_image_id"
我可能会手动构建该URL以跳过HTTP请求(如果发生了什么事情)。
所以对我的问题 - 有没有比挖掘源代码或拔掉互联网访问更快的方法来检测是否在返回值之前发出了网络请求?
答案 0 :(得分:1)
Cloudinary正在使用RestClient
gem。它允许设置全局日志记录。
https://github.com/rest-client/rest-client#logging
要全局启用日志记录,您可以:
使用Ruby Logger设置RestClient.log,或设置环境变量
避免修改代码(在这种情况下,您可以使用文件名, “stdout”或“stderr”):
$ RESTCLIENT_LOG = stdout path / to / my / program