Changeset 5d56584 in rtems-source-builder


Ignore:
Timestamp:
Dec 4, 2014, 5:22:15 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.10, 4.11, 4.9, 5, master
Children:
97e083a
Parents:
ae338e0
git-author:
Sebastian Huber <sebastian.huber@…> (12/04/14 05:22:15)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/11/14 06:50:09)
Message:

sb: Introduce formatter classes

Use inheritance instead of ifs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/reports.py

    rae338e0 r5d56584  
    5050    sys.exit(1)
    5151
     52class formatter(object):
     53    def format(self):
     54        raise error.general('internal error: formatter.format() not implemented')
     55
     56    def ext(self):
     57        raise error.general('internal error: formatter.ext() not implemented')
     58
     59class asciidoc_formatter(formatter):
     60    def format(self):
     61        return 'asciidoc'
     62
     63    def ext(self):
     64        return '.txt'
     65
     66class ini_formatter(formatter):
     67    def format(self):
     68        return 'ini'
     69
     70    def ext(self):
     71        return '.ini'
     72
     73class html_formatter(formatter):
     74    def format(self):
     75        return 'html'
     76
     77    def ext(self):
     78        return '.html'
     79
     80class text_formatter(formatter):
     81    def format(self):
     82        return 'text'
     83
     84    def ext(self):
     85        return '.txt'
     86
    5287def _tree_name(path_):
    5388    return path.splitext(path.basename(path_))[0]
     
    66101    line_len = 78
    67102
    68     def __init__(self, format, _configs, opts, macros = None):
    69         self.format = format
     103    def __init__(self, formatter, _configs, opts, macros = None):
     104        self.formatter = formatter
     105        self.format = formatter.format()
    70106        self.configs = _configs
    71107        self.opts = opts
     
    582618            if output is not None:
    583619                output = output[1]
    584             format = 'text'
    585             ext = '.txt'
     620            formatter = text_formatter()
    586621            format_opt = opts.get_arg('--format')
    587622            if format_opt:
     
    591626                    pass
    592627                elif format_opt[1] == 'asciidoc':
    593                     format = 'asciidoc'
    594                     ext = '.txt'
     628                    formatter = asciidoc_formatter()
    595629                elif format_opt[1] == 'html':
    596                     format = 'html'
    597                     ext = '.html'
     630                    formatter = html_formatter()
    598631                elif format_opt[1] == 'ini':
    599                     format = 'ini'
    600                     ext = '.ini'
     632                    formatter = ini_formatter()
    601633                else:
    602634                    raise error.general('invalid format: %s' % (format_opt[1]))
    603             r = report(format, configs, opts)
     635            r = report(formatter, configs, opts)
    604636            for _config in opts.params():
    605637                if output is None:
    606                     outname = path.splitext(_config)[0] + ext
     638                    outname = path.splitext(_config)[0] + formatter.ext()
    607639                    outname = outname.replace('/', '-')
    608640                else:
Note: See TracChangeset for help on using the changeset viewer.