【问题标题】:Create a CLI with Thor for a gem使用 Thor 为 gem 创建 CLI
【发布时间】:2018-06-04 17:28:12
【问题描述】:

我正在创建一个将天气连接到 API 的 gem,我还创建了测试和类方法,现在我想添加一个命令行解释器 (CLI)。

作为创建 gem 的捆绑器站点教程,我正在尝试使用 Thor

我在/bin/wizer 文件中有这个

#!/usr/bin/env bash

require "wizer/cli"

Wizer::CLI.start

这在/lib/wizer/cli.rb

require 'thor'
require 'wizer'
module Wizer
  class CLI < Thor
    desc "hello world", "my first cli"
    def self.hello
      "Hello world"
    end
  end
end

wizer.gemspec 文件上的这个

  spec.add_runtime_dependency "thor"

这在Gemfile

gem "thor"

查看完整的宝石here

【问题讨论】:

  • 抱歉 - 呃,这里有什么问题?
  • Cli 不工作,看不到任何 CLI 方法。
  • 您是否遇到任何具体错误?
  • bin/wizer: 线 3: 要求: orden no encontrada bin/wizer: 线 5: error sintáctico cerca del elemento inesperado ARGV' bin/wizer: línea 5: Wizer::CLI.start(ARGV)'
  • @MarcosR.Guevara 请编辑您的问题并添加错误,因此新问题的人不必阅读所有 cmets。谢谢!

标签: ruby rubygems command-line-interface bundler thor


【解决方案1】:

这里的主要问题是bin/wizer 文件没有被Ruby 解释。而是使用 Bash,它无法处理 Ruby 代码(或其他任何不是 Bourne 式 shell 脚本的东西)。

要解决此问题,请将shebang 行(即文件中以#! 开头的第一行)更改为以下内容:

#!/usr/bin/env ruby

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多