Невозможно сгенерировать ruby exe с использованием ocra из-за ARGV[0]
Выполнение команды ocra script.rb --no-autoload --no-enc --add-all-core
дает мне ошибку initialize: can't convert nil into String (TypeError)
для следующей строки:
doc = Nokogiri::XML(File.open(ARGV[0]))
Что тут происходит? Я хочу построить исполняемый файл, чтобы иметь возможность принимать любой аргумент и использовать этот файл в качестве конфигурации XML.
2 ответа
Решение
Просто добавьте это выше этой строки:
exit if defined? Ocra
# skip anything below this line when we're building the exe
Если нет require
или иным образом загруженная зависимость ниже этой строки у вас все будет хорошо.
Кажется, долго, но решение принять не работает для меня.
Рабочий раствор добавляет --
затем любые ложные данные в ваш аргумент, чтобы поток выполнения был как обычно
пример для:
так что вам нужно сделать
ocra yourscript.rb -- ANYDATAHERE