現在、Rubocop と Foodcritic を使用して正しいフォーマットに制限しようとしながら、ラッパー クックブックを作成しています。ただし、次のエラーが常に発生します。
Use strings in preference to symbols to access node attributes
と
Access node attributes in a consistent manner
これは、コロンと引用符に違いはありますか?
現在、Rubocop と Foodcritic を使用して正しいフォーマットに制限しようとしながら、ラッパー クックブックを作成しています。ただし、次のエラーが常に発生します。
Use strings in preference to symbols to access node attributes
と
Access node attributes in a consistent manner
これは、コロンと引用符に違いはありますか?
はい...コロンは記号の定義に使用されますが、文字列は引用符で定義されます...そう:
:variable1
variable1 という名前のシンボル
:'variable is 1'
はシンボルです
'variable1'
- 文字列です
"variable#{1}"
- 変数を定義できる文字列です。二重引用符は文字列を解釈しますが、一重引用符は文字列をそのまま使用します。
と
'variable1'.to_sym は :variable1 と同じです
シドの答えで述べたように、:foo
は記号で"foo"
あり'foo'
、文字列です。ノード属性については、自動的に変換されるため、両方のスタイルが機能します。Foodcritic ルールは、すべての Chef コードで一貫したスタイルを保証するためにあります。特に理由がない場合は、文字列スタイルをお勧めします。引用符で囲まれた文字列は多くのプログラミング言語で一般的であり、Ruby に精通していない読者にも理解される可能性が高いためです。