diff --git a/moban/engine.py b/moban/engine.py index 067d3201..8c985be9 100644 --- a/moban/engine.py +++ b/moban/engine.py @@ -15,6 +15,7 @@ BUILTIN_EXENSIONS = [ + 'moban.filters.repr' ] diff --git a/moban/filters/repr.py b/moban/filters/repr.py new file mode 100644 index 00000000..c38c37e8 --- /dev/null +++ b/moban/filters/repr.py @@ -0,0 +1,9 @@ +from moban.extensions import JinjaFilter + + +@JinjaFilter('repr') +def repr_function(string): + if isinstance(string, list): + return ["'{}'".format(str(element)) for element in string] + else: + return "'{}'".format(str(string)) diff --git a/tests/test_filter_repr.py b/tests/test_filter_repr.py new file mode 100644 index 00000000..9502ecdf --- /dev/null +++ b/tests/test_filter_repr.py @@ -0,0 +1,14 @@ +from moban.filters.repr import repr_function +from nose.tools import eq_ + + +def test_string(): + me = 'abc' + expected = repr_function(me) + eq_(expected, "'abc'") + + +def test_list(): + me = [1, 2, 3] + expected = repr_function(me) + eq_(expected, ["'1'", "'2'", "'3'"])