module Build::Environment::System
def self.convert_to_shell(environment)
def self.convert_to_shell(environment) values = environment.values.select{|key, value| valid_for_export(value)} Hash[values.map{|key, value| [ key.to_s.upcase, shell_escape(value) ]}] end
def self.shell_escape(value)
def self.shell_escape(value) case value when Array value.flatten.collect{|argument| shell_escape(argument)}.join(' ') else # Ensure that any whitespace has been escaped: value.to_s.gsub(/ /, '\ ') end end
def self.valid_for_export(value)
def self.valid_for_export(value) case value when Array true when Symbol false when Proc false when Default false when Replace false when Define false else true end end