Ruby で C言語ライクな enum を行うライブラリをつくった
Ruby で C言語ライクな enum
をするライブラリをつくった。
インストール
$ gem install cstyle_enum
使い方
require "cstyle_enum" class Color # enum or cstyle_enum Colors = enum { RED GREEN = 3 BLUE } end Color::RED # => 0 Color::GREEN # => 3 Color::BLUE # => 4 Color::Colors # => {:RED=>0, :GREEN=>3, :BLUE=>4}
#enum
のブロック内に定数を記述すると自動的にナンバリングされた定数が定義されます。
C言語と同様に =
で代入すればその値から続けてナンバリングされます。
また #enum
の戻り値は定義した定数の Hash が返ってきます。
ユーザコードはかなり書きやすくなっているんですが、実装がかなり闇になってる…。