delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

RubyのStringクラスに絵文字変換メソッドを追加してみる(オープンクラスの勉強)

Rubyの特徴であるオープンクラスの勉強のため、Stringクラスに絵文字変換メソッドを追加してみます。

例えば、"カレー".to_emojiを実行すると🍛がreturnされるイメージです。

実装

以下のように簡単に実装できました。

class String
  def to_emoji
    case self
    when "カレー"
      "🍛"
    when "ラーメン"
      "🍜"
    when "寿司"
      "🍣"
    else
      self
    end
  end
end

Stringインスタンス自身を参照するためにはselfが使えます。

docs.ruby-lang.org

実行結果

# ※ class定義に続けて実行

puts "カレー".to_emoji # 🍛
puts "ラーメン".to_emoji # 🍜
puts "寿司".to_emoji # 🍣
puts "牛丼".to_emoji # 牛丼 ※ 対応する絵文字が定義されていないため、「牛丼」がそのまま返される
puts "curry".upcase # CURRY ※ 既存のRubyのStringクラスの挙動が破壊されていないことの確認