A library of utility services and concerns.
A ConstantMap provides an enumerable interface for defining a group of constants.
require 'sleeping_king_studios/tools/toolbox/constant_map'
UserRoles = SleepingKingStudios::Tools::Toolbox::ConstantMap.new(
GUEST: 'guest',
USER: 'user',
ADMIN: 'admin'
).freeze
UserRoles::GUEST
#=> 'guest'
UserRoles.user
#=> 'user'
UserRoles.all
#=> { GUEST: 'guest', USER: 'user', ADMIN: 'admin' }
The class reference for SleepingKingStudios::Tools::Toolbox::ConstantMap can be found in Reference.
The defined values can be accessed a few different ways:
As a nested constant:
UserRoles::GUEST
#=> 'guest'
As a reader method:
UserRoles.user
#=> 'user'
As a Hash:
UserRoles.all
#=> { GUEST: 'guest', USER: 'user', ADMIN: 'admin' }
Using Hash methods:
UserRoles.values
#=> ['guest', 'user', 'admin']
Each ConstantMap defines the following Hash methods:
#each#each_key#each_pair#each_value#keys#valuesThe data can also be accessed as a read-only Hash using #to_h.
Back to Documentation