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_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