Chef - Foodcritic

Escribir buenos libros de cocina sin ningún problema es una tarea bastante difícil. Pero hay formas que pueden ayudar a identificar los escollos. Es posible marcar en Chef Cookbook. Foodcritic es una de las mejores formas de archivarlo, que intenta identificar posibles problemas con la lógica y el estilo de los libros de cocina.

Configuración de Foodcritic

Step 1 - Añadir joya Foodcritic.

[email protected]:~/chef-repo $ subl Gemfile 
source 'https://rubygems.org' 
gem 'foodcritic', '~>2.2.0'

Step 2 - Instala la gema.

[email protected]:~/chef-repo $ bundle install 
Fetching gem metadata from https://rubygems.org/ 
...TRUNCATED OUTPUT... 
Installing foodcritic (2.2.0)

Gema Foodcritic

Step 1 - Ejecute Foodcritic en el libro de cocina.

[email protected]:~/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 - Generar un informe detallado.

[email protected]:~/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|

Método de trabajo

Foodcritic define un conjunto de reglas y comprueba los agentes de recetas, cada uno de ellos. Viene con múltiples reglas en relación con varias áreas: estilos, conectividad, atributos, cadena, probabilidad, búsqueda, servicios, archivos, metadatos, etc.