使用Rake为Gem创建可执行文件(bin/
目录中的文件)的最佳方法是什么?我有一个我想制作可执行文件的gem,我不太确定如何实际创建可执行文件。
答案 0 :(得分:17)
您不需要生成gem的可执行文件。理想情况下,您的可执行文件取决于gem提供的库的功能。例如,请查看the heroku
executable in the Heroku gem:
#!/usr/bin/env ruby
lib = File.expand_path(File.dirname(__FILE__) + '/../lib')
$LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
require 'heroku'
require 'heroku/command'
args = ARGV.dup
ARGV.clear
command = args.shift.strip rescue 'help'
Heroku::Command.run(command, args)
这是解析命令行并将数据发送到Heroku库的其余部分进行处理所需的最少代码量。代码更改时无需生成任何内容,因为可执行文件本身取决于要运行的代码。
答案 1 :(得分:4)
如果您想使用ruby创建可执行文件,那么您要查找的关键字是Shebang
只需创建一个文件(bin / yourexecutable),如果需要,可以删除“.rb”扩展名,使用/usr/bin/env ruby
添加Shebang
,然后点击它。
#!/usr/bin/env ruby
puts "hello world"
通过chmod +x bin/yourexecutable
为其提供可执行标记,您可以直接调用它来启动它。
varar:~ mr$ bin/yourexecutable
hello world
varar:~ mr$
查看Wikipedia page了解详情。
显然,这不适用于Windows。