Sha256: da5dd9d79b6f72d30147f5b46c0ef720e1002b7a742eb9b9bfb4497dbf654e3c

Contents?: true

Size: 886 Bytes

Versions: 26

Compression:

Stored size: 886 Bytes

Contents

# frozen_string_literal: true

module Glossarist
  module Utilities
    module Enum
      class EnumCollection
        include Enumerable

        def initialize
          @collection = {}
        end

        def add(name, values, options = {})
          @collection[name] = { registered_values: values, options: options }
        end

        def each(&block)
          if block_given?
            @collection.each do |object|
              block.call(object)
            end
          else
            enum_for(:each)
          end
        end

        def registered_enums
          @collection&.keys || []
        end

        def valid_types(name)
          @collection[name][:registered_values]
        end

        def type_options(name)
          @collection[name][:options]
        end

        def [](name)
          @collection[name]
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
glossarist-2.3.0 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.2.1 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.2.0 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.1.0 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.10 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.9 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.8 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.7 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.6 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.5 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.4 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.3 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.2 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.1 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-2.0.0 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-1.1.0 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-1.0.9 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-1.0.8 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-1.0.7 lib/glossarist/utilities/enum/enum_collection.rb
glossarist-1.0.6 lib/glossarist/utilities/enum/enum_collection.rb