WIP Create version repo in services with classmethod
The goal is to create a single version_repo object for each file loaded. In that way we may avoid loading the file for loading and writing.
This commit is contained in:
parent
dac901769d
commit
88c3acb73c
3 changed files with 34 additions and 28 deletions
|
@ -3,6 +3,7 @@ class InitReleaseService():
|
|||
def __init__(self, commit_id, file):
|
||||
self.commit_id = commit_id
|
||||
self.file = file
|
||||
self.version_repo = none
|
||||
|
||||
def __read_commit_message(self):
|
||||
pass
|
||||
|
@ -12,12 +13,12 @@ class InitReleaseService():
|
|||
|
||||
def get_version(self):
|
||||
|
||||
current_version = VersionRepository.get_current_version(self.file)
|
||||
version_repo = VersionRepository.get_current_version(self.file)
|
||||
commit_message = self.read_commit_message(self.commit_id)
|
||||
release_type = self.calculate_release_type(commit_message)
|
||||
|
||||
release_version = create_release_version(current_version,release_type)
|
||||
bump_version = create_bump_version(current_version,release_type)
|
||||
release_version = create_release_version(version_repo.version ,release_type)
|
||||
bump_version = create_bump_version(version_repo.version,release_type)
|
||||
|
||||
release_and_bump_version = tuple(release_version, bump_version)
|
||||
|
||||
|
|
18
version.py
18
version.py
|
@ -24,23 +24,7 @@ class Version():
|
|||
|
||||
def __init__(self, version, is_snapshot):
|
||||
self.version = version
|
||||
self.is_snapshot = is_snapshot
|
||||
self.file_handler = None
|
||||
|
||||
@classmethod
|
||||
def from_file(cls, config_file_path):
|
||||
file_handler = FileHandler.from_file_path(config_file_path)
|
||||
version, is_snapshot = file_handler.parse()
|
||||
inst = cls(version, is_snapshot)
|
||||
inst.file_handler = file_handler
|
||||
|
||||
return inst
|
||||
|
||||
def to_file(self):
|
||||
if self.file_handler is None:
|
||||
raise Exception('Version was not created by from_file method.')
|
||||
else:
|
||||
self.file_handler.write(self.get())
|
||||
self.is_snapshot = is_snapshot
|
||||
|
||||
def increment(self, level: ReleaseLevel):
|
||||
self.is_snapshot = False
|
||||
|
|
|
@ -4,14 +4,35 @@ class VersionRepository():
|
|||
|
||||
def __init__(self, file):
|
||||
self.file = file
|
||||
self.file_handler = None
|
||||
self.version = None
|
||||
self.is_snapshot = None
|
||||
|
||||
def load_file(self):
|
||||
self.file_handler = FileHandler.from_file_path(self.file)
|
||||
return file_handler
|
||||
|
||||
def write_file(self):
|
||||
if self.file_handler is None:
|
||||
raise Exception('Version was not created by load_file method.')
|
||||
if self.version is None or self.is_snapshot is None:
|
||||
raise Exception('Version or is_snapshot attribute not set.')
|
||||
else:
|
||||
self.file_handler.write(self.version)
|
||||
|
||||
def parse_file(self, file_handler):
|
||||
version, is_snapshot = file_handler.parse()
|
||||
return version, is_snapshot
|
||||
|
||||
@classmethod
|
||||
def load_file(cls, file):
|
||||
file_handler = FileHandler.from_file_path(file)
|
||||
version, is_snapshot = file_handler.parse()
|
||||
inst = cls(version, is_snapshot)
|
||||
inst.file_handler = file_handler
|
||||
|
||||
return inst
|
||||
def get_current_version(cls, file):
|
||||
inst = cls(file)
|
||||
|
||||
|
||||
file_handler= inst.load_file(file)
|
||||
version, is_snapshot = inst.parse_file(file_handler)
|
||||
|
||||
inst.version = version
|
||||
inst.is_snapshot = is_snapshot
|
||||
inst.file_handler = file_handler
|
||||
|
||||
return inst
|
||||
|
|
Loading…
Reference in a new issue