ruby-on-rails - 将基于 thor 的实用程序 CLI 的 binstub 添加到 Rails 应用程序的最佳方法

标签 ruby-on-rails ruby bundler thor

我有一个与 Rails 应用程序一起使用的基于 thor 的 CLI,在众多使用 thor 实现 CLI 的示例中,我没有找到任何可以在 bundler 上下文中执行的简单 binstub 示例。

我希望能够像这样从命令行调用 my_cli:

$ my_cli do something

我不想:

$ BUNDLE_GEMFILE=/path/to/Gemfile/of/Rails/app bundle exec my_cli

我不想:

$ thor do something

以下 binstub 有效。我必须要求 ../config/boot。在 my_cli.rb 中要求 'thor/rails' 是不够的。

我在问,有没有更好的方法来做到这一点?

#!/usr/bin/env ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require_relative '../lib/my_cli'
MyCli.start(ARGV)

最佳答案

稍微清洁一点:

#!/usr/bin/env ruby

ENV['BUNDLE_GEMFILE'] = File.absolute_path(File.join(__dir__, '../Gemfile'))
ENV['RAKEOPT'] = "--silent"
ENV['RAILS_ENV'] ||= 'development'

APP_PATH = File.absolute_path(File.join(__dir__, '../config/application.rb'))

require 'rubygems'
require 'bundler/setup'
require_relative '../config/environment'

require 'my_cli'

MyCli.start(ARGV)

关于ruby-on-rails - 将基于 thor 的实用程序 CLI 的 binstub 添加到 Rails 应用程序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512348/

相关文章:

ruby-on-rails - 使用 postgresql 和 ruby​​ on rails 优化时间序列数据检索的数据库查询

ruby-on-rails - Rails 5 - 使用 Pundit Scopes 和 Statesman 状态机 : structurally incompatible?

ruby-on-rails - bundle 安装卡住我的 Rails 应用程序

ruby - 如何降级 jekyll 以使用 github 页面?

ruby-on-rails - simple_form 集合标签

ruby-on-rails - RoR v3.2 教程 - 卡住第 9.2.2 章

ruby - 构建 Gem 时出错

javascript - 处理 ruby​​ 中的正则表达式

ruby - 将 'gem list' 用于带有 RVM 的 git gems 时, 'bundle install' 未找到 gems

ruby-on-rails - bundle 安装失败