Sha256: 0342a8d1d95d6cb62591062f4b10041b4223eb6eac1545f4f07859bb8ba52e67

Contents?: true

Size: 818 Bytes

Versions: 16

Compression:

Stored size: 818 Bytes

Contents

# frozen_string_literal: true

require "service_skeleton/config_variable"

class ServiceSkeleton::ConfigVariable::Float < ServiceSkeleton::ConfigVariable
  private

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

      if value =~ /\A-?\d+.?\d*\z/
        value.to_f.tap do |f|
          unless @opts[:range].include?(f)
            raise ServiceSkeleton::Error::InvalidEnvironmentError,
                  "Value #{f} for environment variable #{@name} is out of the valid range (must be between #{@opts[:range].first} and #{@opts[:range].last} inclusive)"
          end
        end
      else
        raise ServiceSkeleton::Error::InvalidEnvironmentError,
              "Value #{value.inspect} for environment variable #{@name} is not a valid numeric value"
      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/float.rb
service_skeleton-2.1.0 lib/service_skeleton/config_variable/float.rb
service_skeleton-1.0.5 lib/service_skeleton/config_variable/float.rb
service_skeleton-2.0.2 lib/service_skeleton/config_variable/float.rb
service_skeleton-2.0.1 lib/service_skeleton/config_variable/float.rb
service_skeleton-2.0.0 lib/service_skeleton/config_variable/float.rb
service_skeleton-1.0.4 lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.1.ENOTAG lib/service_skeleton/config_variable/float.rb
service_skeleton-1.0.3 lib/service_skeleton/config_variable/float.rb
service_skeleton-1.0.2 lib/service_skeleton/config_variable/float.rb
service_skeleton-1.0.1 lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.49.g47046b9 lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.48.g4a40599 lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.44.g75d07d7 lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.43.g678698a lib/service_skeleton/config_variable/float.rb
service_skeleton-0.0.0.41.g9507cda lib/service_skeleton/config_variable/float.rb