我使用 webdriver-user-agent 轻松调整自动浏览器的大小,它具有可在 YAML 文件中配置的用户代理和窗口大小。我想添加到 YAML 文件中,我想知道最好的方法是什么。我可能有一些只有我想使用的添加,所以我排除了 Github 上的拉取请求,我不想将它添加到 gem 的 lib 目录下,因为那样我升级时会丢失我的工作宝石。
向 gem 添加额外代码的最佳方法是什么?
不幸的是,您正在谈论向 gem 添加配置,这不像添加代码那么容易,但仍然可行。
您将对 gem 用来加载其 YAML 配置的任何内容进行monkeypatch,而不是加载您选择的配置。查看源代码,您可以看到 YAML 正在被加载#devices
并且文件名来自#devices_file
. 对我们来说幸运的是(虽然对性能来说不是很多),加载的 YAML 没有被缓存,所以只需替换#devices_file
就可以满足您的需求:
require 'webdriver-user-agent'
module Webdriver
module UserAgent
module Devices
def devices_file
File.expand_path("../my-devices.yml", __FILE__)
end
end
end
end
这将my-devices.yml
在与上述代码所在的文件(如您的 spec_helper.rb 或诸如此类)所在的文件相同的目录中查找一个文件 - 适当调整。