+ def get_version(self, version=None):
+ retval = None
+ if isinstance(version, dict):
+ retval = self._get_version(version.get('type'), version.get(
+ 'version'), version.get('content_type'))
+ elif isinstance(version, StringType):
+ version_parts = version.split(' ')
+ num_parts = len(version_parts)
+ type = version_parts[0]
+ version_num = None
+ content_type = None
+ if num_parts > 1:
+ version_num = version_parts[1]
+ if num_parts > 2:
+ content_type = version_parts[2]
+ retval = self._get_version(type, version_num, content_type)
+ elif isinstance(version, RSpecVersion):
+ retval = version
+ elif not version:
+ retval = self.versions[0]
+ else:
+ raise UnsupportedRSpecVersion(
+ "No such version: %s " % str(version))
+
+ return retval