问题标签 [highline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
64 浏览

ruby - Highline 破坏了先前的输出

使用 Highline v1.6.19

当我运行以下 Ruby 程序时:

在询问前三个问题时,输出如下所示:

然后它要求第四次,而不是将第四行放在第三行之后,它会覆盖第二行的先前输出:

知道为什么或该怎么做吗?

0 投票
1 回答
182 浏览

ruby - Ruby 脚本不适用于关于 highline 库的奇怪错误

我有以下 Ruby 脚本:

当我按 Enter 时它失败了:

未定义的方法default_external' for REXML::Encoding:Module /Library/Ruby/Gems/1.8/gems/highline-1.6.19/lib/highline.rb:621:in 说'/Library/Ruby/Gems/1.8/gems/highline-1.6.19/lib/highline.rb:914:in get_response' /Library/Ruby/Gems/1.8/gems/highline-1.6.19/lib/highline.rb:259:in ask'

验证输入时似乎失败了the_pass,但我无法理解错误,它们有什么关系?

谢谢

0 投票
1 回答
1034 浏览

ruby - Ruby highline gem:有没有办法在脚本/应用程序的持续时间内分配命令

我有使用 highline 的 gem/cli,我想知道您是否可以设置自己的命令以便它始终可用(类似于“帮助”)。

谢谢!

0 投票
1 回答
64 浏览

ruby - 在 Highline 的 ask 方法中随机化 echo char?

我正在尝试在 Highline gem 的ask方法中随机化 echo 字符,但无法使其正常工作。我做的不对吗?

每个调用的字符都是随机的ask(),但不是每个字符。第一次运行将回显相同的字符,即'cccc'。下一次运行将回显“mmmm”等。

0 投票
1 回答
328 浏览

ruby - 如何使用 Highline 测试 Cucumber 用户输入和输出?

我尝试了几种方法,例如存根 STDOUT、使用 highline-test 和 aruba gem,但它仍然会停止我的黄瓜测试并要求用户输入。是否有使用 Cucumber 测试此类应用程序的最佳实践?

0 投票
2 回答
283 浏览

ruby - 在用户从 Ruby 的 HighLine 菜单中选择后,我们如何设置变量?

HighLine 文档显示我们可以在用户从列表中选择一个选项后显示一个字符串,如下所示:

除了(或代替)显示文本之外,我们如何设置变量?替换say("Good choice!")variable = 1不起作用,而是返回“未定义的局部变量或方法”错误。

0 投票
2 回答
603 浏览

ruby - 如何使用 Cucumber 存根和模拟交互式 ruby​​ 应用程序?

我有一个基于Highline gem 的交互式 CLI 应用程序。我可以使用Aruba交互式地运行 Cucumber 测试。但我不能使用存根和模拟,因为 Aruba 将我的应用程序作为子进程启动。如果我尝试使用Aruba::InProcess功能,它会失去交互性。

我已经不知道了。我可以通过什么方式测试这样的应用程序?

0 投票
1 回答
863 浏览

ruby - 高线红宝石。如何在运行时提供可变数量的菜单选项

我的第一个堆栈溢出帖子。我应该简洁明了,但请在第一次出现时让我沉迷于一些背景知识。我已经用 C 和 Visual Basic 编程了 16 年,但只是兼职来支持我作为科学家的工作。大约一年前开始学习 ruby​​ 并且非常喜欢它。我正在编写一个处理数据的程序。这适用于文件夹和文件,而不是数据库。每次遇到困难时,我总能在这里(多么棒的资源!)或在 Google 上找到解决方案。这一次不同。所以说重点:

我想在 ruby​​ 中使用 highline gem 来显示具有可变数量菜单项的菜单。本质上,我希望用户选择一个目录。父目录中可以有任意数量的目录。我的代码如下:

在 menu.choices 调用的括号中,我通常会有 temp,但目前我有 :old1, :old5 只是为了我自己的调试目的,否则我会收到错误。

输出是:

[“deletemetest”、“old2”、“old3”、“old4”、“TestData”、“testy123”、“tsty”]

“:deletemetest,:old2,:old3,:old4,:TestData,:testy123,:tsty”

  1. 老1
  2. 老5

请选择要访问的项目:

所以符号似乎是一个字符串(由于它周围的引号)。如果我可以删除这些,我可能会成功地将 temp 转换为 menu.choice 调用的正确格式。

0 投票
1 回答
43 浏览

ruby - 将脚本粘贴到 Terminal.app 时错误地使用 STDIN

我有以下脚本片段,我经常使用它来半自动化我的一个工作流程。我打开一个 bash 终端并启动 irb,然后粘贴脚本:

现在我希望能够将其粘贴到终端中,但是用户的第一个提示被以下行覆盖repo = ask("Repository:")

有没有办法防止这种行为。

我知道我可以写一个脚本。但

  1. 我发现能够将其粘贴到终端中很方便
  2. 我想知道在这种情况下如何以某种方式超越 STDIN
0 投票
1 回答
91 浏览

ruby - HighLine:使用收集和 answer_or_default

这是我当前用于 ircd 配置文件生成器的代码,我试图能够使用answer_or_default它,并弄清楚使用HighLine::Question#gather

这是answer_or_default

在内部使用 answer_or_default 时,我不太确定如何为其提供文档所说的“answer_string”。

然后 240 是给出的答案,但我无能为力。

我还想学习HighLine::Question#gather使用这段代码的用法。考虑到我不太了解它的文档

#gather 应该向我询问 3 行、姓名、昵称和电子邮件

无论是散列还是数组,但我相信散列会更容易阅读。