使用Rake为Gem创建可执行文件的最佳方法

时间:2011-03-14 02:13:29

标签: ruby rake gem

使用Rake为Gem创建可执行文件(bin/目录中的文件)的最佳方法是什么?我有一个我想制作可执行文件的gem,我不太确定如何实际创建可执行文件。

2 个答案:

答案 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。