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.