User agent string parser for Ruby