Skip to content

Commit 13b3a7a

Browse files
committed
feat: migrate categories CLI action to views
Migrate categories CLI action to view pattern, provide text and JSON view
1 parent 6ca8adb commit 13b3a7a

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

src/hamster-cli.py

100644100755
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ def current(self, action):
234234
def activities(self, facts):
235235
pass
236236

237+
def categories(self, facts):
238+
pass
239+
237240
class HamsterViewText(HamsterView):
238241

239242
def current(self, action):
@@ -247,6 +250,10 @@ def activities(self, facts):
247250
for activity in facts:
248251
print("{}@{}".format(activity['name'], activity['category']))
249252

253+
def categories(self, categories):
254+
for category in categories:
255+
print(category['name'])
256+
250257
class HamsterViewJSON(HamsterView):
251258

252259
def _dump_fact(self, fact):
@@ -270,6 +277,11 @@ def activities(self, facts):
270277
output = [{"name":activity['name'], "category":activity['category']}
271278
for activity in facts]
272279
print(json.dumps(output))
280+
281+
def categories(self, categories):
282+
output = [category['name'] for category in categories ]
283+
print(json.dumps(output))
284+
273285
class HamsterCli(object):
274286
"""Command line interface."""
275287

@@ -350,8 +362,7 @@ def activities(self, *args):
350362

351363
def categories(self, *args):
352364
'''Print the names of all the categories.'''
353-
for category in self.storage.get_categories():
354-
print(category['name'])
365+
self.view.categories(self.storage.get_categories())
355366

356367

357368
def list(self, *times):

0 commit comments

Comments
 (0)