2016-09-16 47 views
2

我的項目使用HoundCI作爲代碼linter,我相信它在內部使用rubocop。Rubocop/Hound推薦冷凍字符串文字類名稱

最近我開始注意到這種警告 -

enter image description here

它會出現在每一個類定義(例如class User < ActiveRecord::Base)。

我明白凍結字符串文字的概念,但爲什麼會期望我凍結類別定義?另外更重要的是,我該如何禁用它? 10個這樣的「錯誤」污染了我們的拉動請求是非常煩人的。

謝謝!

編輯:看起來像它也開始出現在使用字符串文字的require聲明,就像rspec測試一樣。這絕對是新的,沒有被先前

enter image description here

回答

5

它看起來像獵犬/ Rubocop被檢測違反FrozenStringLiteralComment警察的標記。

此警察旨在幫助升級到Ruby 3.0。它會將註釋# frozen_string_literal: true添加到文件頂部以啓用凍結的字符串文字。在Ruby 3.0中,凍結的字符串文字將是默認的。評論將添加到shebang和編碼評論下方。凍結的字符串文字註釋僅在Ruby 2.3+中有效。

您可以手動添加魔力評論到您的文件

# frozen_string_literal: true 

還是有Rubocop的頂部爲你做

$ bundle exec rubocop --auto-correct --only FrozenStringLiteralComment 

你也可以在你的rubocop.yml無視警察,Style/FrozenStringLiteralComment