def ruby_code(obj)
    case obj
    when String            then obj.dump
    when Array             then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
    when Gem::Version      then obj.to_s.dump
    when Date              then obj.strftime('%Y-%m-%d').dump
    when Time              then obj.strftime('%Y-%m-%d').dump
    when Numeric           then obj.inspect
    when true, false, nil  then obj.inspect
    when Gem::Platform     then "Gem::Platform.new(#{obj.to_a.inspect})"
    when Gem::Requirement  then "Gem::Requirement.new(#{obj.to_s.inspect})"
    else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
    end
  end
#
Return a string containing a Ruby code representation of the given
object.