タケユー・ウェブ日報

Webシステム受託会社の業務の中での気づきや調べごとのメモ。

Rais.env.development? みたいな文字列がその値か?真偽値をとれるやつを使いたい

こういうのです。

Rails.env.production? # Rails.env == "production" と同じ

ActiveSupport::StringInquirer クラスを使います。

role = ActiveSupport::StringInquirer.new("admin")
role.admin? #=> true

ActiveSupport::StringInquirer

activesupport/lib/active_support/string_inquirer.rb

String のサブクラスで、respond_to_missing?method_missing を使っていますね。

メソッド名が ? で終わっていたら method_missing が呼ばれ、メソッド名の ? より前の部分文字列が自身と同じなら真を返すわけですね。