Files
RestKit/Scripts/rkcurl
2011-01-20 11:55:40 -05:00

49 lines
1.3 KiB
Ruby
Executable File

#!/usr/bin/ruby
input = ""
ARGV.each do |b|
input = b
end
if input == ""
puts "
This tool parses RestKit logging output and turns it into a curl request so you can see what is going on easier. Simply copy and paste the 'Headers' and 'Sending' lines out of the XCode Console and pass them in to this tool to see the curl request & response.
This is an easy way to see the output from an RKRequest.
USAGE:\n./rkcurl \"2011-01-20 11:40:07.122 DiscussionBoard[25362:40b] Headers: {
Accept = \"application/json\";
\"X-User-Access-Token\" = csitBupAGxaNVVX6XSo;
}
2011-01-20 11:40:07.123 DiscussionBoard[25362:40b] Sending GET request to URL http://discussionboard.heroku.com/topics/4/posts. HTTP Body:
\"
"
exit 0
end
headersString = input.match(/.*Headers: \{(.*)\}/m)[1]
headers = []
headersString.each_line do |line|
next if line.strip.size == 0
headers << line.strip.gsub(";", "").gsub(" = ", ": ")
end
method = input.match(/Sending (.*) request to/m)[1]
url = input.match(/URL (.*)\. HTTP Body/m)[1]
data = nil
dataMatch = input.match(/HTTP Body: (.*)\n/m)
data = dataMatch[1] if dataMatch
command = "curl -i -X #{method} "
command << "-d \"#{data.gsub('"', '\"')}\" " if data
for header in headers
command << "-H \"#{header.gsub('"', '\"')}\" "
end
command << url
puts command
output = `#{command}`
puts output