Some minor modification (open inside the generator for better readability) + one bug fixe (the last block wasnt yiel by the generator)

This commit is contained in:
0rax 2013-11-07 00:34:37 +01:00
parent d85fab763b
commit 69428a7279

37
cheat
View File

@ -179,26 +179,29 @@ class CheatSheets(object):
return ('\n'.join(sorted(['%s [%s]' % (key.ljust(max_command), value)
for key, value in self.sheets.items()])))
def __parse_cheat_command_block(self, cheat_fp):
def __parse_cheat_command_block(self, cheat):
"""Parse text blocks inside specified sheet file"""
block = ""
for line in cheat_fp.readlines():
if line == '\n' or line == '':
yield block
block = ""
else:
block += line
path = os.path.join(self.sheets[cheat], cheat)
with open(path) as fp:
for line in fp.readlines():
if line == '\n':
yield block
block = ""
else:
block += line
yield block
def search(self, term):
for sheet, sheet_dir in self.sheets.iteritems():
path = os.path.join(sheet_dir, sheet)
with open(path) as f:
output = ''
for block in self.__parse_cheat_command_block(f):
if term in block:
if not output:
output = sheet + ":\n"
output += ''.join([" " + line + '\n' for line
in block.split('\n')])
"""Search for a term in sheetcheats"""
for cheat in self.sheets.keys():
output = ''
for block in self.__parse_cheat_command_block(cheat):
if term in block:
if not output:
output = cheat + ":\n"
output += ''.join([" " + line + '\n' for line
in block.split('\n')])
if output:
print output,