【问题标题】:Making ruby gems respond to terminal commands使 ruby​​ gem 响应终端命令
【发布时间】:2012-07-18 07:24:35
【问题描述】:

我对红宝石和宝石制作非常陌生。我制作了一个简单的 gem,它根据输入来抓取一些信息。 但是,要使用我的 gem,我需要进入解释器 (irb) 并需要我的 gem,然后使用一些参数调用该方法。

假设 gem 名为 foo。 假设方法名为print_website(x) # where x is a string

我希望能够做类似的事情:

$ foo test.com

它应该会自动调用该方法并执行它。

提前致谢!如果我不清楚,请向我澄清! :D

【问题讨论】:

  • 首先你需要执行require('foo'),然后你可以试试foo test.com。如果可以的话。

标签: ruby rubygems terminal gem rvm


【解决方案1】:

试试看

$ mkdir bin
$ touch bin/foo
$ chmod a+x bin/foo

编辑 bin/foo

#!/usr/bin/env ruby

require 'foo'
#Anything you want.......

将以下内容添加到 Gemfile

 s.executables << 'foo'

推宝石。现在您发布了命令行实用程序

【讨论】:

  • 嗨!我仍然对我必须在哪里实际调用该方法以及如何为其提供 ARGV[0] 和 ARGV[1] 感到困惑。谢谢!
  • 太棒了,谢谢!但还有一件事,我会在哪里添加依赖项?我需要“nokogiri”来运行它,它说有一个加载错误,它无法加载 nokogiri。我应该在哪里输入 require nokogiri 行?到目前为止,它在带有方法的文件中。谢谢!
  • 没关系,我让它完美地工作!感谢您的帮助:)
【解决方案2】:

简单,只需在创建 gem 时运行 bundle gem mygem -b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2020-09-16
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多