Sha256: 534c4ba3154c19efa00a6eb1a915e9f6b72dc5d8f58b6ea7ba76ac6a2d4fb9a1

Contents?: true

Size: 808 Bytes

Versions: 16

Compression:

Stored size: 808 Bytes

Contents

# frozen_string_literal: true

require "service_skeleton/config_variable"

class ServiceSkeleton::ConfigVariable::Enum < ServiceSkeleton::ConfigVariable
  private

  def pluck_value(env)
    maybe_default(env) do
      v = env[@name.to_s]

      if @opts[:values].is_a?(Array)
        unless @opts[:values].include?(v)
          raise ServiceSkeleton::Error::InvalidEnvironmentError,
                "Invalid value for #{@name}; must be one of #{@opts[:values].join(", ")}"
        end
        v
      elsif @opts[:values].is_a?(Hash)
        unless @opts[:values].keys.include?(v)
          raise ServiceSkeleton::Error::InvalidEnvironmentError,
                "Invalid value for #{@name}; must be one of #{@opts[:values].keys.join(", ")}"
        end
        @opts[:values][v]
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
service_skeleton-2.2.0 lib/service_skeleton/config_variable/enum.rb
service_skeleton-2.1.0 lib/service_skeleton/config_variable/enum.rb
service_skeleton-1.0.5 lib/service_skeleton/config_variable/enum.rb
service_skeleton-2.0.2 lib/service_skeleton/config_variable/enum.rb
service_skeleton-2.0.1 lib/service_skeleton/config_variable/enum.rb
service_skeleton-2.0.0 lib/service_skeleton/config_variable/enum.rb
service_skeleton-1.0.4 lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.1.ENOTAG lib/service_skeleton/config_variable/enum.rb
service_skeleton-1.0.3 lib/service_skeleton/config_variable/enum.rb
service_skeleton-1.0.2 lib/service_skeleton/config_variable/enum.rb
service_skeleton-1.0.1 lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.49.g47046b9 lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.48.g4a40599 lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.44.g75d07d7 lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.43.g678698a lib/service_skeleton/config_variable/enum.rb
service_skeleton-0.0.0.41.g9507cda lib/service_skeleton/config_variable/enum.rb