问题标签 [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 回答
4700 浏览

ruby-on-rails - 与雷神互动提示

我想以某种方式要求用户说出他们的 flickr_id、flickr_apikey 和那些东西,但是我很乐意在我的安装命令下这样做,所以它不会因为所有的参数而变得如此冗长和沉重。

所以像

等等?你明白这个想法,并且可以做到吗?

0 投票
1 回答
1124 浏览

ruby-on-rails - 雷神脚本红宝石中的耙任务

我正在构建安装程序。有了这个,我想以某种方式迁移数据库。我正在使用 Thor 在 Rails 3 中制作我的安装程序。

所以像(在命令行中)

谢谢你。

0 投票
1 回答
2379 浏览

ruby - 使用 Thor,我可以只向 CLI 传递一个参数(不是任务)并将其发送到默认方法/任务吗?

我正在使用 Thor 为我正在制作的 Ruby gem 创建一个 CLI。理想情况下,可执行文件将采用类似的命令myapp path/to/file,从某种意义上说,我宁愿用户不必定义任务,只需定义一个参数。

我查看了 API,但default_task仅在不存在任务/参数时才有效。

如何让 Thor 将此变量文件参数发送到默认方法/任务,而不是将其解释为不存在的任务?

0 投票
1 回答
1332 浏览

ruby - 如何使用 Thor (ruby) 创建守护进程?

我想使用流行的 Thor gem 来创建一个守护任务。我的 Thor 课程如下所示:

所以在这里我设置了一个基本的雷神类,它有两个任务,启动和停止。我目前也在使用 Daemons gem,但这不是必需的。我正在苦苦挣扎的部分是,当这个应用程序作为“run_thor_app.rb start”运行时,一切都运行得很好。显然,在这种情况下不需要停止任务。但是当我运行“run_thor_app.rb start -d”时,应用程序会一直运行,直到 Daemons.daemonize 运行然后退出。检查正在运行的进程表明后台没有运行任何东西。

即使有东西在运行,我也不知道如何处理停止任务。例如,您如何检测应用程序作为守护程序运行并停止它。我查看了 Daemons::Monitor,但文档并不清楚它是如何工作的,当我尝试它时,它没有用。

在我看来,这对于 Thor 内置的东西来说是一个很好的用例,但是在 github 上搜索代码并没有向我透露任何信息。也许我只是在某个地方错过了它。无论如何,我认为最好记录下使用 Thor 处理守护进程的最佳实践或模式以供其他人参考。

0 投票
1 回答
2962 浏览

ruby-on-rails - 在 Rails 生产环境中运行 Thor

我想在生产中的 Rails 3 上运行一些雷神任务,但我不知道如何设置它。以下代码不起作用

0 投票
2 回答
2900 浏览

ruby-on-rails - 是否可以从 Thor 脚本中调用 Git 或其他命令行工具?

我发现我经常在为我的 Rails 3 应用程序进行 git 提交之前和之后运行一系列例行的“清理”任务。

我正在考虑将这些东西放入 Thor 脚本中,但我无法弄清楚的一件事是如何使用 Thor(或 Rake)来调用系统上的其他工具。

是否可以git log从 Thor 或 Rake 脚本中调用命令,如果可以,那是什么样的?

谢谢!

0 投票
2 回答
1341 浏览

ruby - 用于 Thor 的 VIM 中类似 Ruby 的语法高亮

如何将 vim 配置为对Thor使用与 ruby​​ 相同的语法突出显示?当我编辑 *.thor 文件时,我可以使用:set syntax=ruby,它可以工作,但不是永久性的。如果它是 *.thor,有没有办法在我的 .vimrc 文件中有条件地将语法设置为 ruby​​?也许创建一个雷神语法文件并从 ruby​​ 继承?

0 投票
1 回答
224 浏览

ruby-on-rails - 这个rails模板有什么问题?

我正在尝试创建我的第一个 Rails 应用程序模板,但该copy_file方法遇到了一个小问题。

首先是一些背景知识.... 显然 Ruby OpenSSL 包没有附带 CA 存储,因此任何连接到 HTTPS 服务的尝试都将失败。解决这个问题的方法(对于 Rails 3 应用程序)是将行添加OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE到文件的顶部config/environment.rb。我需要在我的模板中即时执行此操作,以便安装 jQuery。

所以我已经弄清楚了,我的一般想法是:

  1. 备份我的config/environment.rb文件。
  2. 将数据添加到原始数据
  3. 运行jquery:install --ui任务
  4. 恢复原始config/environment.rb文件。

请参阅我的模板 Gist,第 25..34 行是相关部分。

所以所有这些都有效,直到第 4 步失败,Error: Could not find "env.orig" in any of your source paths第 31 行失败。
这对我来说非常令人困惑,因为第 28 行有效,我可以env.orig在磁盘上看到文件,那么为什么反向不工作呢?

我究竟做错了什么?

更新1:

在查看了 Thor 源之后thor\actions.rb,很明显 Thor 对源和目标使用了不同的路径(不是您当前的项目路径)。此外,我的副本实际上不起作用,它实际上是在处理 ERB 模板文件,而不是已经生成的文件。

稍作休息后,我突然想到使用正确的工具来完成这项工作,所以现在我有了:run 'cp environment.rb environment.~'并且run 'mv environment.~ environment.rb'工作得很好。我相当肯定,如果没有安装 unix 工具,这在 Windows 机器上是行不通的,但我可以忍受。有没有人有更好的方法?

0 投票
2 回答
3993 浏览

ruby - 在独立的 ruby​​ 可执行文件中命名空间 thor 命令

在命令行上调用 thor 命令时,方法按其模块/类结构命名空间,例如

将使用命令运行

但是,如果您通过放置

在底部,您可以运行以下命令:

有什么方法可以命名这些命令吗?这样你就可以打电话了,例如

0 投票
6 回答
8033 浏览

ruby - 如何在单独的类/模块/文件中编写 Thor 任务?

我在让托尔这样做时遇到了一些麻烦,所以希望有人能指出我做错了什么。

我有一个主类class MyApp < Thor,我想将它分解为多个命名空间的单独文件,例如thor create:app_typeand thor update:app_type。我找不到任何示例来说明应该如何将 Thor 应用程序拆分成多个部分,而且我尝试过的方法似乎不起作用。

举个例子,我试图从主要的雷神课程中脱颖而出:

当我尝试在我的主课中包含或要求这个时:

我得到一个例外:'<module:Grouping>': undefined method 'desc' for Things::Grouping:Module (NoMethodError)

是否可以为 Thor 任务提供多个命名空间,如果是,如何将其拆分,以使您没有一个需要数百行代码的整体类?