diff --git a/scripts/UnitTests/CsprojParser/ValueProvider.py b/scripts/UnitTests/ProjectParser/ValueProvider.py similarity index 100% rename from scripts/UnitTests/CsprojParser/ValueProvider.py rename to scripts/UnitTests/ProjectParser/ValueProvider.py diff --git a/scripts/UnitTests/CsprojParser/__init__.py b/scripts/UnitTests/ProjectParser/__init__.py similarity index 100% rename from scripts/UnitTests/CsprojParser/__init__.py rename to scripts/UnitTests/ProjectParser/__init__.py diff --git a/scripts/UnitTests/CsprojParser/test_csprojLineParser.py b/scripts/UnitTests/ProjectParser/test_projectLineParser.py similarity index 71% rename from scripts/UnitTests/CsprojParser/test_csprojLineParser.py rename to scripts/UnitTests/ProjectParser/test_projectLineParser.py index 97b65cc..79385ba 100644 --- a/scripts/UnitTests/CsprojParser/test_csprojLineParser.py +++ b/scripts/UnitTests/ProjectParser/test_projectLineParser.py @@ -1,31 +1,31 @@ # -*- coding: utf-8 -*- import unittest -from UnitTests.CsprojParser.ValueProvider import ValueProvider -from parser.CsprojParser.CsprojLineParser import CsprojLineParser +from UnitTests.ProjectParser.ValueProvider import ValueProvider +from parser.ProjectParser.ProjectLineParser import ProjectLineParser class TestCsprojParser(unittest.TestCase): def setUp(self): value_provider = ValueProvider() - self.parser = CsprojLineParser(value_provider) + self.parser = ProjectLineParser(value_provider, 'csproj') def test_parseAppStatement(self): statement = "app:SomeAppName" - app_name = self.parser._CsprojLineParser__parseAppStatement(statement) + app_name = self.parser._ProjectLineParser__parseAppStatement(statement) self.assertEqual(app_name, 'SomeAppName') def test_parseKeyValueStatement(self): statement = r"key:myKey 'my value -bla bla'" - setting = self.parser._CsprojLineParser__parseKeyValueStatement(statement) + setting = self.parser._ProjectLineParser__parseKeyValueStatement(statement) self.assertEqual(setting.key, 'myKey') self.assertEqual(setting.value, 'my value -bla bla') def test_parseAttributeStatement(self): statement = r"rel_path '../some_dir/some_file.txt'" - setting = self.parser._CsprojLineParser__parseAttributeStatement(statement) + setting = self.parser._ProjectLineParser__parseAttributeStatement(statement) self.assertEqual(setting.attribute_name, 'rel_path') self.assertEqual(setting.attribute_value, r'../some_dir/some_file.txt') @@ -34,7 +34,7 @@ class TestCsprojParser(unittest.TestCase): statement = r"csproj app:coolApp key:CodesignKey 'iPhone Developer: Рустам Заитов (CTL85FZX6K)'" setting = self.parser.parse(statement) - self.assertEqual(setting.appName, 'coolApp') + self.assertEqual(setting.projectName, 'coolApp') self.assertEqual(setting.key, 'CodesignKey') self.assertEqual(setting.value, 'iPhone Developer: Рустам Заитов (CTL85FZX6K)') @@ -42,6 +42,6 @@ class TestCsprojParser(unittest.TestCase): statement = r"csproj app:coolApp rel_path '../parent_dir/some_file.extension'" setting = self.parser.parse(statement) - self.assertEqual(setting.appName, 'coolApp') + self.assertEqual(setting.projectName, 'coolApp') self.assertEqual(setting.attribute_name, 'rel_path') self.assertEqual(setting.attribute_value, '../parent_dir/some_file.extension') \ No newline at end of file diff --git a/scripts/UnitTests/CsprojParser/test_csprojParser.py b/scripts/UnitTests/ProjectParser/test_projectParser.py similarity index 78% rename from scripts/UnitTests/CsprojParser/test_csprojParser.py rename to scripts/UnitTests/ProjectParser/test_projectParser.py index 8fa6806..24eadeb 100644 --- a/scripts/UnitTests/CsprojParser/test_csprojParser.py +++ b/scripts/UnitTests/ProjectParser/test_projectParser.py @@ -1,6 +1,6 @@ import unittest -from UnitTests.CsprojParser.ValueProvider import ValueProvider -from parser.CsprojParser.CsprojParser import CsprojParser +from UnitTests.ProjectParser.ValueProvider import ValueProvider +from parser.ProjectParser.ProjectParser import ProjectParser class TestCase(unittest.TestCase): @@ -19,7 +19,7 @@ class TestCase(unittest.TestCase): self.__value_provider = ValueProvider() def __do_parse(self): - self.__parser = CsprojParser(self.__lineCollection, self.__value_provider) + self.__parser = ProjectParser(self.__lineCollection, self.__value_provider) self.__parser.parse() def test_projectCount(self): @@ -35,8 +35,8 @@ class TestCase(unittest.TestCase): first = self.__parser.projects_dict['first'] second = self.__parser.projects_dict['second'] - self.assertEqual(first.appName, 'first') - self.assertEqual(second.appName, 'second') + self.assertEqual(first.projectName, 'first') + self.assertEqual(second.projectName, 'second') setting_dict = { 'key1': 'value1', diff --git a/scripts/UnitTests/CsprojSettings/__init__.py b/scripts/UnitTests/ProjectSettings/__init__.py similarity index 100% rename from scripts/UnitTests/CsprojSettings/__init__.py rename to scripts/UnitTests/ProjectSettings/__init__.py diff --git a/scripts/UnitTests/CsprojSettings/test_AttribueSettings.py b/scripts/UnitTests/ProjectSettings/test_AttribueSettings.py similarity index 61% rename from scripts/UnitTests/CsprojSettings/test_AttribueSettings.py rename to scripts/UnitTests/ProjectSettings/test_AttribueSettings.py index 54a4897..65a73bf 100644 --- a/scripts/UnitTests/CsprojSettings/test_AttribueSettings.py +++ b/scripts/UnitTests/ProjectSettings/test_AttribueSettings.py @@ -1,11 +1,11 @@ import unittest -from parser.CsprojParser.Csproj import Csproj -from parser.CsprojParser.CsprojSetting.AttribureSetting import AttributeSetting +from parser.ProjectParser.Project import Project +from parser.ProjectParser.ProjectSetting.AttribureSetting import AttributeSetting class TestCase(unittest.TestCase): def setUp(self): - self.csproj = Csproj('appName') + self.csproj = Project('appName') def test_apply(self): attr_value = 'parent_dir/child_dir' diff --git a/scripts/UnitTests/CsprojSettings/test_keyValueSetting.py b/scripts/UnitTests/ProjectSettings/test_keyValueSetting.py similarity index 65% rename from scripts/UnitTests/CsprojSettings/test_keyValueSetting.py rename to scripts/UnitTests/ProjectSettings/test_keyValueSetting.py index 1a76462..dd3f4c6 100644 --- a/scripts/UnitTests/CsprojSettings/test_keyValueSetting.py +++ b/scripts/UnitTests/ProjectSettings/test_keyValueSetting.py @@ -1,11 +1,11 @@ import unittest -from parser.CsprojParser.Csproj import Csproj -from parser.CsprojParser.CsprojSetting.KeyValueSetting import KeyValueSetting +from parser.ProjectParser.Project import Project +from parser.ProjectParser.ProjectSetting.KeyValueSetting import KeyValueSetting class TestCase(unittest.TestCase): def setUp(self): - self.csproj = Csproj('appName') + self.csproj = Project('appName') def test_apply(self): diff --git a/scripts/commands/patch_csproj_command.py b/scripts/commands/patch_csproj_command.py index 945bc14..313bc86 100644 --- a/scripts/commands/patch_csproj_command.py +++ b/scripts/commands/patch_csproj_command.py @@ -1,5 +1,5 @@ import commands.build_command as bcmd -from parser.CsprojParser.CsprojParser import CsprojParser +from parser.ProjectParser.ProjectParser import ProjectParser import utils.csproj.patcher as csproj class PatchCsproj(bcmd.BuildCommand): @@ -29,7 +29,7 @@ class PatchCsproj(bcmd.BuildCommand): def __fillPatchSettings(self, line_collection): assert line_collection is not None - self._parser = CsprojParser(line_collection, self._value_provider) + self._parser = ProjectParser(line_collection, self._value_provider) self._parser.parse() def execute(self): diff --git a/scripts/parser/CsprojParser/Csproj.py b/scripts/parser/CsprojParser/Csproj.py deleted file mode 100644 index f842fc9..0000000 --- a/scripts/parser/CsprojParser/Csproj.py +++ /dev/null @@ -1,7 +0,0 @@ -class Csproj: - def __init__(self, appName): - self.appName = appName - self.settings = {} - - def __str__(self): - return 'app Name: {0} settings: {1}'.format(self.appName, self.settings) \ No newline at end of file diff --git a/scripts/parser/CsprojParser/CsprojSetting/__init__.py b/scripts/parser/InfoplistParser/__init__.py similarity index 100% rename from scripts/parser/CsprojParser/CsprojSetting/__init__.py rename to scripts/parser/InfoplistParser/__init__.py diff --git a/scripts/parser/ProjectParser/Project.py b/scripts/parser/ProjectParser/Project.py new file mode 100644 index 0000000..32556b4 --- /dev/null +++ b/scripts/parser/ProjectParser/Project.py @@ -0,0 +1,7 @@ +class Project: + def __init__(self, projectName): + self.projectName = projectName + self.settings = {} + + def __str__(self): + return 'app Name: {0} settings: {1}'.format(self.projectName, self.settings) \ No newline at end of file diff --git a/scripts/parser/CsprojParser/CsprojLineParser.py b/scripts/parser/ProjectParser/ProjectLineParser.py similarity index 75% rename from scripts/parser/CsprojParser/CsprojLineParser.py rename to scripts/parser/ProjectParser/ProjectLineParser.py index f50d7c3..11c5873 100644 --- a/scripts/parser/CsprojParser/CsprojLineParser.py +++ b/scripts/parser/ProjectParser/ProjectLineParser.py @@ -1,38 +1,39 @@ -from parser.CsprojParser.CsprojSetting.AttribureSetting import AttributeSetting -from parser.CsprojParser.CsprojSetting.KeyValueSetting import KeyValueSetting +from parser.ProjectParser.ProjectSetting.AttribureSetting import AttributeSetting +from parser.ProjectParser.ProjectSetting.KeyValueSetting import KeyValueSetting import re -class CsprojLineParser: - def __init__(self, value_provider): +class ProjectLineParser: + def __init__(self, value_provider, command_token): assert value_provider is not None self._value_provider = value_provider + self._command_token = command_token def parse(self, line): ws = ' ' - csproj_regexp = "^(?Pcsproj)" + cmd_name_regexp = "^(?P{0})".format(self._command_token) app_regexp = r"(?Papp:\S+)" setting_regexp = r"(?P\S+ '[^']+')$" - source = csproj_regexp + ws + app_regexp + ws + setting_regexp + source = cmd_name_regexp + ws + app_regexp + ws + setting_regexp regexp = re.compile(source, re.UNICODE) match = regexp.search(line) self.__guardMatch(match, line) cmd_name = match.group('cmd_name') - self.__parseCsprojStatement(cmd_name) + self.__parseProjectStatement(cmd_name) app_statement = match.group('app') - appName = self.__parseAppStatement(app_statement) + project_name = self.__parseAppStatement(app_statement) setting_statement = match.group('setting') setting = self.__parseSettingStatement(setting_statement) - setting.appName = appName + setting.projectName = project_name return setting - def __parseCsprojStatement(self, statement): + def __parseProjectStatement(self, statement): pass def __parseAppStatement(self, statement): diff --git a/scripts/parser/CsprojParser/CsprojParser.py b/scripts/parser/ProjectParser/ProjectParser.py similarity index 55% rename from scripts/parser/CsprojParser/CsprojParser.py rename to scripts/parser/ProjectParser/ProjectParser.py index 25e54bd..04f59e1 100644 --- a/scripts/parser/CsprojParser/CsprojParser.py +++ b/scripts/parser/ProjectParser/ProjectParser.py @@ -1,8 +1,8 @@ -from parser.CsprojParser.Csproj import Csproj -from parser.CsprojParser.CsprojLineParser import CsprojLineParser +from parser.ProjectParser.Project import Project +from parser.ProjectParser.ProjectLineParser import ProjectLineParser -class CsprojParser: +class ProjectParser: def __init__(self, line_collection, value_provider): assert line_collection is not None assert value_provider is not None @@ -18,19 +18,19 @@ class CsprojParser: settings.append(self.__parse_line(line)) for s in settings: - csproj = self.__fetchProject(s.appName) - s.apply(csproj) + project = self.__fetchProject(s.projectName) + s.apply(project) def __fetchProject(self, project_name): assert project_name is not None - csproj = self.projects_dict.get(project_name, Csproj(project_name)) - self.projects_dict[project_name] = csproj + project = self.projects_dict.get(project_name, Project(project_name)) + self.projects_dict[project_name] = project - return csproj + return project def __parse_line(self, line): - line_parser = CsprojLineParser(self._value_provider) + line_parser = ProjectLineParser(self._value_provider, 'csproj') setting = line_parser.parse(line) return setting \ No newline at end of file diff --git a/scripts/parser/CsprojParser/CsprojSetting/AttribureSetting.py b/scripts/parser/ProjectParser/ProjectSetting/AttribureSetting.py similarity index 79% rename from scripts/parser/CsprojParser/CsprojSetting/AttribureSetting.py rename to scripts/parser/ProjectParser/ProjectSetting/AttribureSetting.py index 17c078e..199dba5 100644 --- a/scripts/parser/CsprojParser/CsprojSetting/AttribureSetting.py +++ b/scripts/parser/ProjectParser/ProjectSetting/AttribureSetting.py @@ -1,4 +1,4 @@ -from parser.CsprojParser.CsprojSetting.CsprojSettingBase import CsprojSettingBase +from parser.ProjectParser.ProjectSetting.CsprojSettingBase import CsprojSettingBase class AttributeSetting(CsprojSettingBase): diff --git a/scripts/parser/CsprojParser/CsprojSetting/CsprojSettingBase.py b/scripts/parser/ProjectParser/ProjectSetting/CsprojSettingBase.py similarity index 100% rename from scripts/parser/CsprojParser/CsprojSetting/CsprojSettingBase.py rename to scripts/parser/ProjectParser/ProjectSetting/CsprojSettingBase.py diff --git a/scripts/parser/CsprojParser/CsprojSetting/KeyValueSetting.py b/scripts/parser/ProjectParser/ProjectSetting/KeyValueSetting.py similarity index 76% rename from scripts/parser/CsprojParser/CsprojSetting/KeyValueSetting.py rename to scripts/parser/ProjectParser/ProjectSetting/KeyValueSetting.py index 24016ea..d480daa 100644 --- a/scripts/parser/CsprojParser/CsprojSetting/KeyValueSetting.py +++ b/scripts/parser/ProjectParser/ProjectSetting/KeyValueSetting.py @@ -1,4 +1,4 @@ -from parser.CsprojParser.CsprojSetting.CsprojSettingBase import CsprojSettingBase +from parser.ProjectParser.ProjectSetting.CsprojSettingBase import CsprojSettingBase class KeyValueSetting(CsprojSettingBase): diff --git a/scripts/parser/CsprojParser/__init__.py b/scripts/parser/ProjectParser/ProjectSetting/__init__.py similarity index 100% rename from scripts/parser/CsprojParser/__init__.py rename to scripts/parser/ProjectParser/ProjectSetting/__init__.py diff --git a/scripts/parser/ProjectParser/__init__.py b/scripts/parser/ProjectParser/__init__.py new file mode 100644 index 0000000..cc31abc --- /dev/null +++ b/scripts/parser/ProjectParser/__init__.py @@ -0,0 +1 @@ +__author__ = 'rzaitov'