简单的命令行 Ruby 应用程序
simple command line Ruby application
我被要求开发一个简单的命令行 Ruby 应用程序,它使用指定的搜索查询从外部 API 检索结果。我已经创建了一个脚本来执行此操作,并使用 #!/usr/bin/env ruby
使其可执行。我的脚本名称是 sampleapp.rb。所以我可以从控制台 运行 它作为
$> ./sampleapp some_argument
那是我在文件目录里面的时候。
在给我的示例中,script/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
如果此脚本不依赖于任何第 3 方库(不太可能)并且可以在系统 ruby
上顺利运行,最简单的方法是将其复制到 /usr/local/bin
文件夹:
sudo cp ./sampleapp /usr/local/bin/
如果它依赖于其他库,首选方法是从中构建一个 gem,然后使用系统 ruby
安装它。关于如何制作gem
、the canonical one is likely this.
的教程有很多
我被要求开发一个简单的命令行 Ruby 应用程序,它使用指定的搜索查询从外部 API 检索结果。我已经创建了一个脚本来执行此操作,并使用 #!/usr/bin/env ruby
使其可执行。我的脚本名称是 sampleapp.rb。所以我可以从控制台 运行 它作为
$> ./sampleapp some_argument
那是我在文件目录里面的时候。
在给我的示例中,script/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
如果此脚本不依赖于任何第 3 方库(不太可能)并且可以在系统 ruby
上顺利运行,最简单的方法是将其复制到 /usr/local/bin
文件夹:
sudo cp ./sampleapp /usr/local/bin/
如果它依赖于其他库,首选方法是从中构建一个 gem,然后使用系统 ruby
安装它。关于如何制作gem
、the canonical one is likely this.