ねこものがたり

プログラミングあれこれ

inquiryメソッドが便利だったので

昨日railsinquiryメソッドを知りました。

APIドキュメントinquiryと引くと、ArrayStringはえているようです。

今回知ってどちらのクラスにも使ったのですが、特にStringに対してこのメソッドを使うと、とにかく便利で、たった1語でこんなことができるんかと、まあとにかく感動しました。

例えばこのようになります。

inquiry使わない場合

> "sushi".class
=> String
> main_dish.sushi? # sushi?ってメソッドはStringクラスにないので
Traceback (most recent call last):
        1: from (irb):4
NoMethodError (undefined method `sushi?' for "sushi":String)

inquiry使う場合

> main_dish = "sushi".inquiry
=> "sushi"
> main_dish.sushi?
=> true
0> main_dish.pizza?
=> fals

メインディッシュは寿司に決まり!

> main_dish.sushi?.class
=> TrueClass
> main_dish.pizza?.class
=> FalseClass

とTrue/Falseが戻り値になります。

また inquiryというのは StringInquirerクラスで、もとのインスタンスをラップします。

> "sushi".inquiry.class
=> ActiveSupport::StringInquirer

上記はString#inquiryですが、Array#inruiryでも基本は同様(ArrayInquirerクラスにラップする)。

昨日知って昨日メソッドを使ったばかりですが、このソース読んでみます。 最近は「やりたいことはだいたいrailsのメソッドがある」というのを体感していて、感動しています。すごいなあ!