def to_s(options = {})
    hierarchical_separator = options[:hierarchical_separator] || '_'
    pair_separator         = options[:pair_separator]         || ' '
    value_surrounder       = options[:value_surrounder]       || '"'
    name_value_separator   = options[:name_value_separator]   || '='

    concatenated_name_hash = to_concatenated_name_hash(hierarchical_separator)

    pairs = concatenated_name_hash.to_a.map do |key, value|
      "#{key.upcase}#{name_value_separator}#{value_surrounder}#{value}#{value_surrounder}"
    end

    pairs.join(pair_separator)
  end
def to_s(options = {})
    hierarchical_separator = options[:hierarchical_separator] || '_'
    pair_separator         = options[:pair_separator]         || ' '
    value_surrounder       = options[:value_surrounder]       || '"'
    name_value_separator   = options[:name_value_separator]   || '='

    concatenated_name_hash = to_concatenated_name_hash(hierarchical_separator)

    pairs = concatenated_name_hash.to_a.map do |key, value|
      "#{key.upcase}#{name_value_separator}#{value_surrounder}#{value}#{value_surrounder}"
    end

    pairs.join(pair_separator)
  end
Internal: Converts a Settings object into a String with a format that will
 work well when working with the shell.

 Examples:

   Settings.new( settings: {
                   my_key:       'my value',
                   my_other_key: 'my other value',
                 } ).to_s
   # => 'MY_KEY="my value" MY_OTHER_KEY="my other value"'