こういうのです。
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
が呼ばれ、メソッド名の ?
より前の部分文字列が自身と同じなら真を返すわけですね。