module Class::Enum::ClassMethods

Public Instance Methods

fetch(*args) click to toggle source

@overload fetch(name)

Returns a enum field for the given name.
If the name can't be found, it will raise an {KeyError} exception
@param [#to_sym] name
@raise [KeyError] If the name can't be found

@overload fetch(name, default)

Returns a enum field for the given name.
If the name can't be found, the given *default* will be returned
@param [#to_sym] name
@param default
# File lib/class/enum.rb, line 112
def fetch(*args)
        case args.length
        when 1
                name = args[0]
                if key?(name)
                        value(name)
                else
                        raise KeyError, "key not found: #{name.inspect}"
                end
        when 2
                name = args[0]
                default = args[1]
                if key?(name)
                        value(name)
                else
                        default
                end
        else
                raise ArgumentError, "Invalid arguments length"
        end
end
key?(name) click to toggle source

Checks a field of given name exists You can also do like `Animal::DOG.instance_of?(Animal)`

@param [#to_sym] name @return [Boolean]

# File lib/class/enum.rb, line 61
def key?(name)
        name = name.to_sym
        @enum_fields.key?(name)
end
keys() click to toggle source

Gets an array of enum field names @return [Array<Symbol>] (copied) An array of enum field names

# File lib/class/enum.rb, line 92
def keys
        @enum_fields.keys
end
to_a()
Alias for: values
to_h() click to toggle source

Gets an hash of enum fields @return [Hash{Symbol, Object}] (copied) An hash of enum fields

# File lib/class/enum.rb, line 98
def to_h
        @enum_fields.dup
end
value(name) click to toggle source

Gets a field by given name You can also do like `Animal::DOG`

@param [#to_sym] name @return A enum field with given name. If not exists, nil

# File lib/class/enum.rb, line 79
def value(name)
        @enum_fields[name.to_sym]
end
value?(obj) click to toggle source

Checks given value is a field of this enum

@param obj @return [Boolean]

# File lib/class/enum.rb, line 70
def value?(obj)
        @enum_fields.value?(obj)
end
values() click to toggle source

Gets an array of enum fields @return [Array] (copied) An array of enum fields

# File lib/class/enum.rb, line 85
def values
        @enum_fields.values
end
Also aliased as: to_a