Rubyで文字列に絵文字が含まれているかを判定し、真偽値を返すメソッドを作ったのですが、見てくれが悪すぎるので誰か他に良い書き方思い浮ぶ方リファクタリングして頂きたい...
メソッド
def emoji_contained?(text)
# nilは絵文字が含まれていないことにしたい
return false if text.nil?
# 絵文字が一文字でも含まれていればその時点でtrueを返す。
text.each_char do |b|
return true if b.bytesize == 4
end
return false
end
追記
この記事を投稿した一時間後に @techno-tanoC さんに、改良したコードをコメントに載せて頂いたのでそちらも掲載します!ruby2.3以降で絵文字判定される方はこちらのコードを是非採用ください
def emoji_contained?(text)
text&.each_char&.any? {|c| c.bytesize == 4 } || false
end