Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte no desenvolvimento de jogos


    Enum

    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : Enum         ZgLkiRU
    Mensagens : 5163
    Créditos : 1137

    Enum         Empty Enum

    Mensagem por Valentine em Qua Out 07, 2020 8:53 pm

    Sobre:
    Comportamento semelhante ao Enum para Ruby.

    Script:
    Código:
    #==============================================================================
    # ** Enum
    #------------------------------------------------------------------------------
    #  Este script lida com tipos de enumeração.
    #------------------------------------------------------------------------------
    #  Autor: Valentine
    #==============================================================================

    module Kernel
      
      def enum(constant_names)
        Module.new do |mod|
          n = 0
          constant_names.each_with_index do |const, i|
            if constant_names[i + 1].to_i > 0
              n = constant_names[i + 1].to_i
              constant_names.delete_at(i + 1)
            end
            mod.const_set(const.to_s, n)
            n += 1
          end
        end
      end
      
    end

    Exemplos:
    Código:
    Sex = enum %w(
      MALE
      FEMALE
    )
    Ou:
    Código:
    Dir = enum %w(
      DOWN_LEFT  1
      DOWN_RIGHT 3
    )

    Créditos:
    Valentine

      Data/hora atual: Sex Out 30, 2020 7:03 pm