Codewars OOP-Aufgabe #4

Open
gubsersinia wants to merge 1 commits from aufgabe2 into master
Showing only changes of commit 43f46df411 - Show all commits

58
src/aufgabe2.py Normal file
View File

@ -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}"