Chef - Foodcritic

Ecrire de bons livres de cuisine sans aucun problème est une tâche assez difficile. Mais il existe des moyens qui peuvent aider à identifier les écueils. Le marquage dans Chef Cookbook est possible. Foodcritic est l'un des meilleurs moyens de l'archiver, qui tente d'identifier les problèmes possibles avec la logique et le style des livres de cuisine.

Configuration Foodcritic

Step 1 - Ajouter la gemme Foodcritic.

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

Step 2 - Installez la gemme.

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

Gemme Foodcritic

Step 1 - Exécutez Foodcritic sur le livre de cuisine.

[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 - Générer un rapport détaillé.

[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éthode de travail

Foodcritic définit un ensemble de règles et vérifie les agents de recette, chacun d'eux. Il est livré avec plusieurs règles concernant divers domaines: styles, connectivité, attributs, chaîne, probabilité, recherche, services, fichiers, métadonnées, etc.