我被要求开发一个简单的命令行Ruby应用程序,该应用程序使用指定的搜索查询从外部API检索结果。我创建了一个脚本来执行此操作并使用#!/usr/bin/env ruby
使其可执行。我的脚本名称是 sampleapp.rb 。所以我可以从控制台运行它
$> ./sampleapp some_argument
只有当我在文件目录中时才会这样。
在给我的例子中,脚本/ app应该像这样运行:
$> sampleapp some_argument
我做了很多研究,但找不到实现这个目标的方法。请指导我。
另外,我如何使这个sampleapp全局化,以便可以从任何地方调用它。
更新
sampleapp.rb
require 'net/https'
require 'openssl'
require 'json'
require 'uri'
require 'cgi'
module Someapp
class SampleApp
def search(query ="")
...some code here ...
end
if ARGV.size == 0 || ARGV[0].strip == ""
puts "Please provide search query as an argument"
else
query = ARGV[0].strip
SampleApp.new.search(query)
end
end
答案 0 :(得分:1)
如果此脚本不依赖于任何第三方库(不太可能)并且与系统ruby
平稳运行,最简单的方法是将其复制到/usr/local/bin
文件夹:
sudo cp ./sampleapp /usr/local/bin/
如果它依赖于其他库,首选方法是从中构建gem,并使用系统ruby
进行安装。有很多关于如何生成gem
,the canonical one is likely this。