我想monkeypatch一个Vagrant插件。
由于我不是Ruby人,但想测试一些行为,我需要一些帮助。
我需要覆盖那里的方法chef_provisioner?
:
https://github.com/fgrehm/vagrant-cachier/blob/master/lib/vagrant-cachier/cap/linux/chef_file_cache_path.rb
到目前为止,我在Vagrantfile的顶部得到了什么:
module VagrantPlugins
module Cachier
module Cap
module Linux
module ChefFileCachePath
def self.chef_provisioner?(machine)
# patch applies here
end
end
end
end
end
end
Vagrant无法识别补丁。少了什么东西?这样可能吗?
答案 0 :(得分:0)
我能够像这样monkeypatch它:
module VagrantPlugins
module Cachier
module Cap
module Linux
module ChefFileCachePath
def self.chef_provisioner?(machine)
# stuff
end
def self.chef_file_cache_path(machine)
# other method stuff
end
end
end
end
end
end
VagrantPlugins::Cachier::Plugin.guest_capability 'linux', 'chef_file_cache_path' do
# load the patched module
VagrantPlugins::Cachier::Cap::Linux::ChefFileCachePath
end