From 43f46df411a853d010a420a99af703433d320262 Mon Sep 17 00:00:00 2001 From: Sinia Gubser Date: Sun, 26 Apr 2026 13:50:59 +0200 Subject: [PATCH] Codewars OOP-Aufgabe --- src/aufgabe2.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/aufgabe2.py diff --git a/src/aufgabe2.py b/src/aufgabe2.py new file mode 100644 index 0000000..1507fe8 --- /dev/null +++ b/src/aufgabe2.py @@ -0,0 +1,58 @@ +class VersionManager(): + + def __init__(self, version="0.0.1"): + + self.version = version + + if self.version == "": + self.version = "0.0.1" + + num = self.version.split(".") + + while len(num) < 3: + num.append("0") + + if len(num) > 3: + num = num[0:3] + + try: + self.ma = int(num[0]) + self.mi = int(num[1]) + self.pa = int(num[2]) + except: + raise Exception("Error occured while parsing version!") + + self.history = [] + + def major(self): + self.history.append((self.ma, self.mi, self.pa)) + self.ma = self.ma + 1 + self.mi = 0 + self.pa = 0 + + return self + + def minor(self): + self.history.append((self.ma, self.mi, self.pa)) + self.mi = self.mi + 1 + self.pa = 0 + + return self + + def patch(self): + self.history.append((self.ma, self.mi, self.pa)) + self.pa = self.pa + 1 + + return self + + def rollback(self): + if not self.history: + raise Exception("Cannot rollback!") + + last = self.history.pop() + self.ma, self.mi, self.pa = last + + return self + + def release(self): + return f"{self.ma}.{self.mi}.{self.pa}" \ No newline at end of file