Мой драгоценный камень под названием «Сокол» запускается из командной строки. Используя ARGV
и OptionParser
, я прочитал ввод в командной строке и запустил основные классы Ruby в своем приложении, без проблем.Командная строка Ruby gem с конфигурационным блоком
Он может принимать конфигурационный блок в файле инициализации, если он вызывается из Rails Console. После this basic pattern, я сделал это так, что пользователи могут создать файл инициализации, как следующее:
# config/initializers/falcon.rb
Falcon.configure do |c|
c.allowed_setting = 'value'
end
И затем, в консоли Rails, я могу это сделать:
Falcon.configuration.allowed_setting # => 'value'
Однако, когда Я запускаюсь из командной строки, классы драгоценных камней работают не с их настройками конфигурации, а как будто никаких конфигураций не задано. Полагаю, это потому, что выполнение из командной строки не проходит через среду Rails с предварительно загруженными файлами инициализации.
Я пробовал работать bundle exec falcon [command]
, но это ничего не исправить. Любые идеи о том, как обойти это, чтобы командная строка запускала камень с конфигурациями Rails?
Зачем вместо этого требовать файл инициализации? Нужно ли вашему драгоценному камню загружать всю среду рельсов? Также вы можете взглянуть на [Slop] (https://github.com/leejarvis/slop), что значительно упрощает работу с аргументами командной строки. – max