Chef - Kritikus Makanan

Menulis buku masak yang bagus tanpa masalah adalah tugas yang cukup sulit. Tetapi ada cara yang dapat membantu dalam mengidentifikasi jebakan. Penandaan di Chef Cookbook dimungkinkan. Foodcritic adalah salah satu cara terbaik untuk mengarsipkannya, yang mencoba mengidentifikasi kemungkinan masalah dengan logika dan gaya buku masak.

Pengaturan Foodcritic

Step 1 - Tambahkan permata Foodcritic.

vipin@laptop:~/chef-repo $ subl Gemfile 
source 'https://rubygems.org' 
gem 'foodcritic', '~>2.2.0'

Step 2 - Pasang permata.

vipin@laptop:~/chef-repo $ bundle install 
Fetching gem metadata from https://rubygems.org/ 
...TRUNCATED OUTPUT... 
Installing foodcritic (2.2.0)

Permata Foodcritic

Step 1 - Jalankan Foodcritic di buku masak.

vipin@laptop:~/chef-repo $ foodcritic ./cookbooks/<Cookbook Name> 
FC002: Avoid string interpolation where not required: ./cookbooks/ 
mysql/attributes/server.rb:220 
...TRUNCATED OUTPUT... 
FC024: Consider adding platform equivalents: ./cookbooks/<Cookbook Name>/ 
recipes/server.rb:132

Step 2 - Buat laporan rinci.

vipin@laptop:~/chef-repo $ foodcritic -C ./cookbooks/mysql 
cookbooks/<cookbook Name>/attributes/server.rb 
FC002: Avoid string interpolation where not required 
[...] 
85| default['<Cookbook Name>']['conf_dir'] = "#{mysql['basedir']}" 
[...] 
cookbooks/<Cookbook Name>/recipes/client.rb 
FC007: Ensure recipe dependencies are reflected in cookbook 
metadata 
40| end 
41|when "mac_os_x" 
42| include_recipe 'homebrew' 
43|end 
44|

Metode Kerja

Foodcritic menetapkan seperangkat aturan dan memeriksa agen resep, masing-masing dari mereka. Muncul dengan beberapa aturan tentang berbagai area: gaya, keterhubungan, atribut, string, probabilitas, pencarian, layanan, file, metadata, dan sebagainya.