我是Chef / Ruby的新手,我正在尝试从一位老同事那里清理一些旧代码。我有三个食谱:
每个中都有一个相同的ruby代码块:
def computer_exists?
comp = Mixlib::ShellOut.new('powershell.exe -command \"get-wmiobject -class win32_computersystem -computername . | select domain\"').run_command
comp.stdout.include?(new_resource.name) || comp.stdout.include?(new_resource.name.upcase)
end
有没有办法可以将这段代码包装成一个属性,或者沿着这些行包装,以便我们不会在每个食谱中不断重写相同的4行?
答案 0 :(得分:1)
查看libaries。
您应该可以将该确切代码转储到libraries
下的新文件中(例如cookbook/libraries/helper.rb
),然后从任何地方拨打computer_exists?
。