class ProgneTapera::EnumItem

Attributes

code[R]
name[R]
options[R]

Public Class Methods

new(code, name, options = {}) click to toggle source

code = HA (value) name = han options = { localized_name: '汉' } -> constant: HAN

# File lib/progne_tapera/enum_item.rb, line 16
def initialize(code, name, options = {})

  raise ArgumentError.new('The code argument is required.') if code.blank?
  raise ArgumentError.new('The name argument is required.') if name.blank?

  @code    = code
  @name    = name
  @options = options

  @options.each do |key, value|
    EnumItem.class_eval do
      define_method(key.to_sym) do
        @options[key] #value
      end
    end
  end

end

Public Instance Methods

<=>(that) click to toggle source

根据 code 字段的值,比较大小。

# File lib/progne_tapera/enum_item.rb, line 43
def <=>(that)
  self.code<=>that.code
end
==(that) click to toggle source

判断两个枚举项的 code 字段是否相等。

# File lib/progne_tapera/enum_item.rb, line 37
def ==(that)
  self.code==that.code
end
constant_name() click to toggle source
# File lib/progne_tapera/enum_item.rb, line 47
def constant_name
  name.to_s.upcase
end