Sha256: 0afc7322b4a07b5d5bb2f15a79f5887f2f928595aa012586493e5f56808cb922

Contents?: true

Size: 562 Bytes

Versions: 12

Compression:

Stored size: 562 Bytes

Contents

module Ellen
  class Env
    attr_reader :key, :description, :options

    def initialize(key, description, options = {})
      @key = key.to_s
      @description = description
      @options = options
    end

    def validate
      error if required? && missing?
    end

    def to_usage
      "    %-30s - %s" % [key, description]
    end

    private

    def required?
      !options[:optional]
    end

    def missing?
      !ENV[key]
    end

    def error
      raise MissingRequiredKeyError, %<ENV["#{key}"] is required but missing>
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ellen-0.2.8 lib/ellen/env.rb
ellen-0.2.7 lib/ellen/env.rb
ellen-0.2.6 lib/ellen/env.rb
ellen-0.2.5 lib/ellen/env.rb
ellen-0.2.4 lib/ellen/env.rb
ellen-0.2.3 lib/ellen/env.rb
ellen-0.2.2 lib/ellen/env.rb
ellen-0.2.1 lib/ellen/env.rb
ellen-0.2.0 lib/ellen/env.rb
ellen-0.1.3 lib/ellen/env.rb
ellen-0.1.2 lib/ellen/env.rb
ellen-0.1.1 lib/ellen/env.rb