# File lib/httpauth/digest.rb, line 56
        def encode_directives(h, variant)
          encode = {:domain => :list_to_space_quoted_string, :algorithm => false, :stale => :bool_to_str, :nc => :int_to_hex}
          if [:credentials, :auth].include? variant
            encode.merge! :qop => false
          elsif variant == :challenge
            encode.merge! :qop => :list_to_comma_quoted_string
          else
            raise ArgumentError.new("#{variant} is not a valid value for `variant' use :auth, :credentials or :challenge")
          end
          (variant == :auth ? '' : 'Digest ') + h.collect do |directive, value|
            '' << directive.to_s << '=' << if encode[directive]
                begin
                  Conversions.send encode[directive], value
                rescue NoMethodError, ArgumentError
                  raise ArgumentError.new("Can't encode #{directive}(#{value.inspect}) with #{encode[directive]}")
                end
              elsif encode[directive].nil?
                begin
                  Conversions.quote_string value
                rescue NoMethodError, ArgumentError
                  raise ArgumentError.new("Can't encode #{directive}(#{value.inspect}) with quote_string")
                end
              else
                value
              end
          end.join(", ")
        end