module Decay::Enum
Public Instance Methods
enum(**rules)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/decay/enum.rb, line 4 def enum(**rules) rules.each do |enum_name, enum_values| enumerated_type_class = if enum_values.is_a?(Hash) ::Decay::EnumeratedType.create(**enum_values) else ::Decay::EnumeratedType.create(*enum_values) end meta = Metaprogramming.new( class: self, enumerated_type: enumerated_type_class, enumerated_type_name: enum_name ) meta.define_enumerated_type meta.define_getter meta.define_setter end end