Chef - Foodcritic

Escrever bons livros de receitas sem qualquer problema é uma tarefa bastante difícil. Mas existem maneiras que podem ajudar a identificar as armadilhas. É possível sinalizar no livro de receitas do Chef. Foodcritic é uma das melhores formas de arquivamento, que tenta identificar possíveis problemas com a lógica e o estilo dos livros de receitas.

Configuração de crítica alimentar

Step 1 - Adicione a gema Foodcritic.

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

Step 2 - Instale a gema.

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

Jóia do Crítico Alimentar

Step 1 - Execute Foodcritic no livro de receitas.

[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 - Gere um relatório detalhado.

[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 trabalho

Foodcritic define um conjunto de regras e verifica os agentes de receitas, cada um deles. Ele vem com várias regras relativas a várias áreas: estilos, conexão, atributos, string, probabilidade, pesquisa, serviços, arquivos, metadados e assim por diante.