Sha256: a1db94e0ca6e032fb79a2784a8b67035feffb737798b5ffb064bdc96d2256efe

Contents?: true

Size: 923 Bytes

Versions: 10

Compression:

Stored size: 923 Bytes

Contents

require "goon_model_gen"

require "goon_model_gen/source/type"

module GoonModelGen
  module Source
    class Enum < Type

      class Element
        attr_reader :value, :name
        def initialize(value, name)
          @value, @name = value, name
        end
      end

      attr_reader :base_type, :elements

      # @param name [String]
      # @param base_type [String]
      # @param element_definitions [Array<Hash<Object,String>>,Hash<Object,String>]
      def initialize(name, base_type, element_definitions)
        unless element_definitions.all?{|i| i.is_a?(Hash) && (i.length == 1) }
          raise "Enum element definitions must be an Array of 1 element Hash but was #{element_definitions.inspect}"
        end
        super(name)
        @base_type = base_type
        @elements = element_definitions.map do |i|
          Element.new(i.keys.first, i.values.first)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
goon_model_gen-0.4.3 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.4.2 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.4.1 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.4.0 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.3.1 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.3.0 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.2.5 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.2.4 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.2.3 lib/goon_model_gen/source/enum.rb
goon_model_gen-0.2.2 lib/goon_model_gen/source/enum.rb