Thanks @Ben_Boral, worked like a charm!
With openurl I needed to pass the device id (UUID) that appium was running the tests on. There were no methods (that I could find) to get the device id, so I used xcrun simctl list to query for the booted device. Here's the ruby code I used:
def launch_url(url)
simulator_id = `xcrun simctl list | grep 'Booted' | cut -d \( -f2 | tr -d ')'`.strip
`xcrun simctl openurl #{simulator_id} #{url}`
end
Hope that helps someone else in the future!