厨师 - 删除相同的代码多个食谱

时间:2016-09-08 20:20:22

标签: ruby chef

我是Chef / Ruby的新手,我正在尝试从一位老同事那里清理一些旧代码。我有三个食谱:

  1. 食谱/提供商/ domain.rb
  2. 食谱/提供商/ domaincontroller.rb
  3. 食谱/提供商/ rename.rb
  4. 每个中都有一个相同的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行?

1 个答案:

答案 0 :(得分:1)

查看libaries

您应该可以将该确切代码转储到libraries下的新文件中(例如cookbook/libraries/helper.rb),然后从任何地方拨打computer_exists?