+ raise UnsupportedRSpecVersion("[%s %s %s] is not suported here"% (type, version_num, content_type))
+ return retval
+
+ 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, basestring):
+ 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, BaseVersion):
+ retval = version
+ else:
+ raise UnsupportedRSpecVersion("No such version: %s "% str(version))
+
+ return retval
+
+ def get_version_by_schema(self, schema):
+ retval = None
+ for version in self.versions:
+ if schema == version.schema:
+ retval = version
+ if not retval:
+ raise InvalidRSpec("Unkwnown RSpec schema: %s" % schema)
+ return retval
+
+def show_by_string(string):
+ try:
+ print v.get_version(string)
+ except Exception,e:
+ print e
+def show_by_schema(string):
+ try:
+ print v.get_version_by_schema(string)
+ except Exception,e:
+ print e