コガミツlog

福岡在住エンジニアのブログ

ActiveSupportのinquiryに初めて触れた

ActiveSupportのinquiryに初めて触れた

質問を受けたのですが知らなくて自分でも調べてみたやつ。

ActiveSupportのinquiryという機能

Railsガイドにも載っていて 以下のような記載があります。

inquiryは、文字列をStringInquirerオブジェクトに変換します。このオブジェクトを使うと、等しいかどうかをよりスマートにチェックできます。

https://railsguides.jp/active_support_core_extensions.html#inquiry

"production".inquiry.production? # => true
"active".inquiry.inactive?       # => false

となります。

手元で動かすと、説明通りStringInquirer のオブジェクトでした。

"foo".inquiry.class
# => ActiveSupport::StringInquirer

ちなみに定義まで見ていきます。

https://github.com/rails/rails/blob/7-1-stable/activesupport/lib/active_support/core_ext/string/inquiry.rb

def inquiry
  ActiveSupport::StringInquirer.new(self)
end

selfをwrapしているだけでした。

出来るだけ英語の意味も調べるようにしているのですが、inquiryは尋ねること・問い合わせ という意味みたいです。

ちなみにRuboCop

https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsinquiry

リンク先見てもらえラバわかりますが、inquiry メソッドを使用していないことを強制するルールもあります。

ActiveSupportの機能で使ったことないやつ結構あるみたいなので今度時間取って触ろうかな。