code: def load
        # First, apply the defaults
        merge defaults
  
        # Then apply the config file, if one exists
        begin
          apprc_dir = File.expand_path('~')
          config_file = File.expand_path(File.join(apprc_dir, '.cratus.yml'))
          merge YAML.load_file(config_file) if File.readable?(config_file)
        rescue => e
          puts "WARNING: Unable to read from #{config_file}: #{e.message}"
        end
  
        # Finally, apply any environment variables specified
        env_conf = {}
        defaults.keys.each do |key|
          cratus_key = "CRATUS_#{key}".upcase
          env_conf[key] = ENV[cratus_key] if ENV.key?(cratus_key)
        end
        merge env_conf unless env_conf.empty?
      end
docs: Construct a base config using the following order of precedence:
     * environment variables
     * YAML file
     * defaults