Лучший способ создать исполняемый файл для Gem с помощью Rake - PullRequest
10 голосов
/ 14 марта 2011

Каков наилучший способ создания исполняемого файла (файла в каталоге bin/) для Gem с помощью Rake?У меня есть гем, для которого я хочу сделать исполняемый файл, и я не совсем уверен, как на самом деле создать исполняемый файл.

Ответы [ 2 ]

17 голосов
/ 14 марта 2011

Вам не нужно создавать исполняемые файлы вашего гема. В идеале, ваш исполняемый файл зависит от библиотеки, которую ваш гем предоставляет для функциональности. Например, взгляните на исполняемый файл heroku в 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 для обработки. Не нужно ничего генерировать при изменении кода, потому что сам исполняемый файл зависит от кода, который должен функционировать.

4 голосов
/ 14 марта 2011

Если вы хотите создать исполняемый файл с использованием ruby, ключевое слово, которое вы ищете: Shebang

Просто создайте файл (bin / yourexecutable), отбросьте ".rb "расширение, если хотите, добавьте Shebang сверху, используя /usr/bin/env ruby, и добавьте его.

#!/usr/bin/env ruby
puts "hello world"

Присвойте ему исполняемый флаг через chmod +x bin/yourexecutable, и выможете запустить его, позвонив напрямую.

varar:~ mr$ bin/yourexecutable
hello world
varar:~ mr$

Проверьте страницу Википедии для получения дополнительной информации.

Очевидно, это не будет работать в Windows.

...