Начал реализовывать класс, который отвечает за включение содержимого из других файлов

This commit is contained in:
rzaitov 2013-11-05 19:53:34 +04:00
parent 234dd0b546
commit db015acedf
10 changed files with 25 additions and 17 deletions

View File

@ -1,5 +1,5 @@
class CommentRemover:
def processLine(self, line):
def processText(self, line):
assert line is not None
newLine = line

View File

@ -6,7 +6,7 @@ class MacroResolver:
self.macroProcessor = macroProcessor
self.valueProvider = valueProvider
def processLine(self, line):
def processText(self, line):
assert line is not None
symbols = self.macroProcessor.getSymbols(line)

View File

@ -1,5 +1,5 @@
class Stripper:
def processLine(self, line):
def processText(self, line):
assert line is not None
return line.strip(' \t\n\r')

View File

@ -1,4 +1,4 @@
class LineConveyor:
class TextConveyorPreprocessor:
def __init__(self):
self.processors = []
@ -7,10 +7,10 @@ class LineConveyor:
self.processors.append(processor)
def processLine(self, line):
def processText(self, line):
assert line is not None
for processor in self.processors:
line = processor.processLine(line)
line = processor.processText(line)
return line

View File

@ -0,0 +1,6 @@
class TextInclude:
def __init__(self):
pass
def processText(self, text):
pass

View File

@ -42,7 +42,7 @@ class StepsRunner:
lines = content.splitlines()
for line in lines:
processedLine = self.lineConveyor.processLine(line)
processedLine = self.lineConveyor.processText(line)
if len(processedLine) == 0:
continue

View File

@ -8,12 +8,12 @@ class TestCommentRemover(unittest.TestCase):
def test_startsWithComment(self):
line = '# this line is comment'
newLine = self.commentRemover.processLine(line)
newLine = self.commentRemover.processText(line)
self.assertEqual('', newLine)
def test_containsComment(self):
line = 'this line contains # a comment'
newLine = self.commentRemover.processLine(line)
newLine = self.commentRemover.processText(line)
self.assertEqual('this line contains ', newLine)

View File

@ -21,6 +21,6 @@ class TestMacroResolver(unittest.TestCase):
def test_resolveLine(self):
line = '{@key1} bla {@some_name} version: {@version}'
newLine = self.macroResolver.processLine(line)
newLine = self.macroResolver.processText(line)
self.assertEqual('hello world bla another name version: 1.2.3', newLine)

View File

@ -8,6 +8,6 @@ class TestStripper(unittest.TestCase):
def test_stripLine(self):
line = ' \tSome text \t\r\n'
newLine = self.stripper.processLine(line)
newLine = self.stripper.processText(line)
self.assertEqual('Some text', newLine)

View File

@ -2,7 +2,7 @@
import os
import argparse
from Core.LineConveyor.CommentRemover import CommentRemover
from Core.LineConveyor.LineConveyor import LineConveyor
from Core.LineConveyor.TextConveyorPreprocessor import TextConveyorPreprocessor
from Core.LineConveyor.MacroResolver import MacroResolver
from Core.LineConveyor.Stripper import Stripper
from commands.ValueProvider import ValueProvider
@ -35,10 +35,12 @@ class TaskRunner:
self.valueProvider = ValueProvider()
macroResolver = MacroResolver(macroProcessor, self.valueProvider)
self.lineConveyor = LineConveyor()
self.lineConveyor.addProcessor(lineStripper)
self.lineConveyor.addProcessor(commentRemover)
self.lineConveyor.addProcessor(macroResolver)
self.textPreprocessor = TextConveyorPreprocessor()
self.textPreprocessor.addProcessor(macroResolver)
self.linePreprocessor = TextConveyorPreprocessor()
self.linePreprocessor.addProcessor(lineStripper)
self.linePreprocessor.addProcessor(commentRemover)
def run(self):
rawSettings = self.settingsProvider.fetchSettings()
@ -51,7 +53,7 @@ class TaskRunner:
def runConfig(self, config):
content = self.getStepsContent(config)
stepsRunner = StepsRunner(config, self.lineConveyor, self.valueProvider)
stepsRunner = StepsRunner(config, self.linePreprocessor, self.valueProvider)
stepsRunner.run(content)
def getStepsContent(self, config):