Можно ли проверить среду rails, какая задача rake запущена?

Есть ли переменная среды, которую я мог бы использовать в своих инициализаторах рельсов, чтобы определить, выполняется ли задача rake? Нравится -- rake db:migrate db:seed

У меня есть куча инициализаторов, которые можно пропустить для большинства задач rake:

  • Не загружайте пружину (это проект jruby)
  • Не загружайте наблюдатель аудита, который прерывает миграцию

Обновлять:

Я, вероятно, пожалею об этом позже, но, похоже, работает следующее:

В моем application.rb добавлено следующее:

config.is_rake = (File.basename($0) == 'rake')

Затем я проверяю значение позже

config.active_record.observers = :audit_observer unless config.is_rake

В другом месте моего весеннего инициализатора

SPRING_CONTEXT = org.springframework.context.support.FileSystemXmlApplicationContext.new(SPRING_XML_CONFIG_FILES) unless Rails.application.config.is_rake

На основе ответа здесь


person stringaling    schedule 08.11.2011    source источник
comment
я не уверен, что делать в случае переполнения стека - я доволен своей реализацией - мне ответить на это? удали это ?   -  person stringaling    schedule 09.11.2011
comment
Оставьте это, чтобы кто-то нашел позже.   -  person Chuck Vose    schedule 12.09.2012
comment
+1 У нас была похожая потребность. И я думаю, что этот config.is_rake будет хорошим началом. У нас также есть Spring, и мы не хотим, чтобы он запускался во время задач rake, а точнее таких вещей, как компиляция ресурсов или в консоли rails.   -  person mrjabba    schedule 20.10.2012