2016-09-08 6 views
2

シェフとルビーには比較的新しいので、古い同僚の古いコードをクリーンアップしようとしています。私は3件のレシピがありますシェフ - 同一のコードを複数のレシピから削除する

  1. 料理/プロバイダ/ domain.rb
  2. 料理/プロバイダ/ domaincontroller.rb
  3. 料理/プロバイダ/ rename.rb

を、同一の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

libariesをご覧ください。

新しいファイルに正確なコードをlibraries(たとえばcookbook/libraries/helper.rb)にダンプしてから、どこからでもcomputer_exists?を呼び出すことができます。

関連する問題