Update facts.rb

I poked around with this and added in some catches for "bad" values. I'm sure there is a better way to handle this, so please feel free to handle it in the best way possible. Thanks!