问题标签 [thor]

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 投票
2 回答
3083 浏览

ruby - 在 Ruby gem 中使用 Thor 生成器

如何设置 gem 以具有二进制命令,例如“project newProject”,它使用 Thor 的一组生成器命令来创建文件等?

一个好的答案将描述如何布置 gem 的骨架,当从命令行运行时,即“project newProject”,在它运行的目录中创建一个名为“newProject.txt”的文件。

我已经看到 Rails 3 使用 Thor 为其发电机供电。似乎是一个非常好的解决方案,我想在我正在研究的非 Rails ruby​​ gem 中使用类似的方法。尝试查看 Rails 3 源代码,但它有点迷宫,因此提出了问题。

0 投票
6 回答
14838 浏览

ruby - 输入密码后 Net::SSH sudo 命令挂起

我一直在尝试使用 Thor 编写一个小型库,以帮助我快速创建新项目和站点。我写了这个小方法:

只是帮助我在需要时在远程服务器上运行快速命令。

问题是当我需要在远程端的 sudo 下运行命令时,脚本似乎就挂在我身上了。例如当执行这个...

该脚本将提示我输入密码

但是在输入之后整个事情就挂了。

有谁会碰巧知道它为什么会挂起,以及我可以做些什么来在 Net::SSH (或其他替代方法)下的远程服务器上运行 sudo 命令?

*注意:在建议之前,我最初是在 Capistrano 下开始编写这个库作为食谱的,直到我遇到了 Thor,并认为这是一个尝试的好机会。如果需要,我并不反对将整个事情切换回 Capistrano,但如果没有一种简单的方法可以在远程服务器上运行 sudo 命令,我会感到非常惊讶。

0 投票
4 回答
11128 浏览

ruby - Rake 与 Thor 的自动化脚本?

我想自动化一些事情,比如:

  • 使用预先选择的数据库创建一个新的 Ruby on Rails 应用程序,Git 初始化它,创建一个Heroku项目,提交所有文件等。
  • 通过 SSH 将文件夹中的所有文件上传到另一台计算机,但不要覆盖文件。
  • 升级 Ubuntu,通过 apt-get 安装所有基础包。

据我了解,用于此的工具是 Rake 和 Thor,但是,我应该使用哪一个?

在我看来,Rake 似乎更受欢迎。我听说有人推荐托尔。

这些如何在一个破败中相互站立?

0 投票
3 回答
2700 浏览

ruby - 可以在不调用 thor 的情况下调用可执行的 Thor 驱动的脚本吗?

我有一个基于 thor 的 Ruby 脚本,但我想将它作为一个 gem 部署在人们的bin目录中,人们可以点击而无需执行thor mytool.

所以他们只会使用mytool

这可能吗?

我知道香草有可能,optparse但如果可能的话,我宁愿使用雷神。

更新:这是我根据 Thor 页面上的示例使用的代码,但出现以下错误:

错误:

0 投票
1 回答
2234 浏览

ruby-on-rails - 用于控制台应用程序的 Boson vs Thor

有人用过BosonThor吗?

Thor 非常受欢迎,并且比 Boson 拥有更多的追随者和贡献者,但 Boson 看起来比 Thor 强大得多,而且架构经过深思熟虑。

在玻色子中,您:

  • 可以添加在控制台和 ruby​​ 环境中都使用的方法。因此,您不必同时拥有用于控制台的 Thorfiles 和用于 ruby​​ 的 gems。
  • 可以有别名。
  • 不必安装脚本文件,只需将它们放在 ~/.boson/commands 中即可。每次更新后,我总是不得不努力卸载和安装 Thorfiles(编辑源代码时可能是每一分钟,非常令人沮丧)。
  • 有比雷神更好的命令输出。
  • 不必像在 Thor 中那样手动编写参数描述。
  • 使用模块,这比使用类更好,因为您可以在其他模块中包含模块。
  • 将开源代码片段(例如来自 Gist)自动包装在一个模块中,它可以立即与 Boson 一起使用。
  • 对您的方法结果有不同的看法。
  • 不必重新编码代码片段中的任何内容以适应 Thor,因为它只使用本机 ruby​​ 代码(模块)。这意味着如果您有一天不想使用 Boson,则不必重新编码所有内容,如果您使用的是 Thor,则必须这样做。
  • API有更好的文档记录——就像每个类中的教程一样。
  • 您可以在 ruby​​ 脚本中包含“玻色子”模块并直接使用它们,这是我无法使用 Thor 的,因为它仅适用于 Thor。您不能与其他 Thor 类共享 Thor 方法(不能作为 mixins)

我仅通过阅读文档就注意到了所有这些好处,并与 Boson 一起玩了几分钟。

我应该仅仅因为 Thor 更受欢迎而使用 Thor(因为我找不到其他任何可以让 Boson 发光的东西)还是应该冒着 Boson 可能在一段时间后无人维护的风险,因为作者是唯一的贡献者?

尽管这只是一个人,但您可以看到他如何以极快的速度和出色的质量进行编码。如果有更多像他这样的贡献者为该库做出贡献,那就太好了。我真的希望更多的 ruby​​ 爱好者会使用它,因为它有很大的潜力成为所有系统自动化的脚本框架。就像后端的 Rails。当您提出问题时,作者确实可以非常快速地帮助您。

Thor 仅适用于外壳(我猜这是它的目的),而我看到的 boson 具有 3 个主要功能。它允许您在 shell、ruby(irb 和脚本)中运行代码,并且您可以拥有所有 Ruby 代码的漂亮集合,而无需修改。

我一直想要一个框架作为我的后端脚本框架,现在我不必重新发明轮子。看来玻色子可能是它。

有人使用过这两个库并可以分享一些想法吗?

0 投票
2 回答
1128 浏览

javascript - 用于 Javascript 的 Thor 等效或类似脚本框架?

是否有可用于构建脚本的 Thor 等效(ruby 工具)或类似的 Javascript 脚本框架?

0 投票
2 回答
4841 浏览

ruby - Ruby - Thor 首先执行特定任务

当我运行雷神任务时,是否可以先调用特定任务?

我的雷神档案:

我可以在每个任务中编写“connect_to_database”方法,但这似乎不是很干。

0 投票
1 回答
1037 浏览

ruby - 从 Migration 运行 Thor 任务

我想从迁移中调用一个雷神任务。有了 rake 我可以写

但我怎么能用雷神做到这一点?(thor 命令是“thor db:rollback”)(thor db:rollback不是一个选项,我希望看到输出并且脚本应该在错误时中止)

更新:从 Thorfile 调用迁移

它看起来像这样:

0 投票
5 回答
923 浏览

ruby-on-rails - Call task more than once in Rails 3 generator

I'm writing a Rails 3 generator that creates two different models. Here's a very simplified example of what I'm trying to do:

The problem is that the Thor invoke method only invokes a task once, so the second call to the "model" task never happens and the "bar" model is never created. Does anyone know an elegant way to accomplish this, preferably in a way that doesn't break the ability to run "rails destroy" with the generator?

0 投票
1 回答
675 浏览

ruby - 用 Ruby 编写类似 Thor gem 的 DSL?

我试图弄清楚Thor gem如何创建这样的 DSL(他们的 README 中的第一个示例)

具体来说,它如何知道映射descmethod_options调用哪个方法?