1

我使用 webdriver-user-agent 轻松调整自动浏览器的大小,它具有可在 YAML 文件中配置的用户代理和窗口大小。我想添加到 YAML 文件中,我想知道最好的方法是什么。我可能有一些只有我想使用的添加,所以我排除了 Github 上的拉取请求,我不想将它添加到 gem 的 lib 目录下,因为那样我升级时会丢失我的工作宝石。

向 gem 添加额外代码的最佳方法是什么?

4

1 回答 1

2

不幸的是,您正在谈论向 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 或诸如此类)所在的文件相同的目录中查找一个文件 - 适当调整。

于 2013-07-09T15:08:05.483 回答