Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Regex#matchに続けてメソッドチェインをしたい場合、ブロックを渡すか、tapに繋げる

Regex#matchに続けてメソッドチェインをしたい場合、
ブロックを渡すか、tapに繋げる事で実現できます。

ブロックを渡す

ブロックを渡すと、結果が真の場合ブロックの中身を実行してくれます。
真でない場合はnilを返します

/(?<hrgn>\p{hiragana}+.*)/.match("ふが"){|m| m[:hrgn]}
#=> "ふが"

/(?<hrgn>\p{hiragana}+.*)/.match("piyo"){|m| m[:hrgn]}
#=> nil

tapとbreakの合わせ技を使う

tap結果をreturnして使う場合はbreakです

/(?<hrgn>\p{hiragana}+.*)/.match("ふが").tap{break self ? true : false}
#=> true