构建用户友好的CLI UI

注意,我们不会失去CLI的经典功能 您仍然可以输入所需的内容,并立即跳过所有这些菜单。 而且Coltrane足够好,可以打印出您要达到当前状态所必须输入的内容。 例如:

  $ coltrane show chord和弦:Cm7 chord_representation:文本 

就像URL一样

与网络的比较不会止于此。 因此,让我们深入研究新的Coltrane CLI的体系结构。

当您键入coltrane您最终将落入此行:

 响应= {path:(path ||''),** params} 
循环{response = app.flow(** response)}

本质上, #flow向路由器发送一个请求,该请求将实例化适当的视图,该视图将重新生成response 。 然后,我们使用此响应再次调用相同的方法。

那是转折点!

我们使用与请求相同的响应,从而创建了不间断的流程。

每个视图可能都有一个问题列表,在呈现之前必须先回答这些问题:

如果参数不包含这些问题的答案,它将发送回App ,后者将使用令人赞叹的Shopify的CLI / UI gem来呈现问题:

Shopify /客户端
终端用户界面库。 通过在GitHub上创建一个帐户来为Shopify / cli-ui开发做出贡献。 www.github.com

然后将问题转换为参数,并再次完成请求。

但这是一个技巧:如果问题与path: ,则路由器实际上将使用该答案来触发不同的视图。 这样,视图实际上可以用作其他视图的重定向点:

这个系统允许我们插入任何东西来代替CLI ,只要它已经准备好向用户questions并提供视图params (即答案)即可。 也许我们可以有一天有一个Telegram机器人?

现在就这样。 以后我可能会详细介绍这个主题。 如果您喜欢本文或有任何疑问,请在评论中让我知道。