module Senf VERSION = {{ `shards version`.stringify.chomp.downcase }} class SafeEnv private property keys def initialize(@keys = {} of String => String?) end def initialize(keys : Array(String)) @keys = {} of String => String? keys.each { |k| self.<< k } end def <<(key : String) : self @keys[key] = ENV[key]? self end def []?(key : String) : String? if @keys.has_key?(key) @keys[key]? end end def [](key : String) : String if @keys.has_key?(key) val = @keys[key]? raise "ENV[#{key}] is nil" unless val val else raise "No such key: #{key}" end end end end