The 22-year-old makes the switch to Glebe Park after leaving Hearts, having also previously played for East Fife, Forfar Athletic and Linfield.
Manager Mark Wilson told the club website: "Rory has come from a good academy at Hearts and has plenty of first-team football behind him, having been on loan a couple of times. He is someone with real pace and a top finisher."