Sha256: 7a84e171ef6d9e0552787340ae65c3c9b9ff0e2a1d012f5428af10cde452f342

Contents?: true

Size: 616 Bytes

Versions: 2

Compression:

Stored size: 616 Bytes

Contents

require 'command_mapper/types/map'

module CommandMapper
  module Types
    class Enum < Map

      # @return [Array<Object>]
      attr_reader :values

      #
      # Initializes the enum type.
      #
      # @param [Array<Object>] values
      #   The values of the enum type.
      #
      def initialize(values)
        @values = values

        super(Hash[values.map { |value| [value, value.to_s] }])
      end

      #
      # Creates a new enum.
      #
      # @param [Array<Object>] values
      #
      # @return [Enum]
      #
      def self.[](*values)
        new(values)
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
command_mapper-0.1.0 lib/command_mapper/types/enum.rb
command_mapper-0.1.0.pre1 lib/command_mapper/types/enum.rb