DEV Community

hiko1129
hiko1129

Posted on • Originally published at note.hiko1129.com on

[Ruby][Sorbet] You should pass arguments to new in T::Enum

Translate ja to en

下記のように特段設定しなければserializeしてもスネークケースにならない(キャメルはスネークになってほしいのだが...)。

Railsのenumと組み合わせる形で使うときも使い勝手が悪い。

class A < T::Enum
  enums do
    HogeHoge = new
  end
end

A::HogeHoge.serialize # -> hogehoge
Enter fullscreen mode Exit fullscreen mode

newに引数を渡すとそれがserializeの結果になる。

deserializeも引数に渡した文字列でできる。

class A < T::Enum
  enums do
    HogeHoge = new('hoge_hoge')
  end
end

A::HogeHoge.serialize # -> hoge_hoge
A.deserialize('hoge_hoge') # -> <A::HogeHoge>
Enter fullscreen mode Exit fullscreen mode

Top comments (0)