Chef-foodcritic

提供:Dev Guides
移動先:案内検索

シェフ-Foodcritic

問題なく優れたクックブックを作成することは非常に困難な作業です。 しかし、落とし穴を特定するのに役立つ方法があります。 Chef Cookbookでフラグを立てることができます。 Foodcriticはそれをアーカイブする最良の方法の1つであり、クックブックのロジックとスタイルで考えられる問題を特定しようとします。

Foodcriticセットアップ

  • ステップ1 *-Foodcritic gemを追加します。
vipin@laptop:~/chef-repo $ subl Gemfile
source 'https://rubygems.org'
gem 'foodcritic', '~>2.2.0'
  • ステップ2 *-gemをインストールします。
vipin@laptop:~/chef-repo $ bundle install
Fetching gem metadata from https://rubygems.org/
...TRUNCATED OUTPUT...
Installing foodcritic (2.2.0)

Foodcritic Gem

  • ステップ1 *-クックブックでFoodcriticを実行します。
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
  • ステップ2 *-詳細レポートを生成します。
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|

作業方法

Foodcriticは一連のルールを定義し、それぞれがレシピエージェントをチェックします。 スタイル、接続性、属性、文字列、確率、検索、サービス、ファイル、メタデータなど、さまざまな領域に関する複数のルールが付属しています。