Как я могу отключить трассировку в рейке задач? - PullRequest
0 голосов
/ 20 ноября 2018

Я не уверен, когда это началось, но всякий раз, когда я запускаю задачу rake в Rails:

$ rake routes

Перед печатью маршрутов отображается трассировка:

** Invoke routes (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute routes

Я думал, что эти операторы invoke / execute появятся только в том случае, если я добавлю --trace в свою команду, но это происходит для всех моих задач rake (db create / migrate, Capistrano и т. Д.)

Есть лиспособ отключить функцию трассировки?Есть ли в Rails файл конфигурации, который может включать трассировку, о которой я не знаю?

1 Ответ

0 голосов
/ 20 ноября 2018

Проблема была обнаружена в специальном геме, который реализует плагин Capistrano.Драгоценный камень позволяет использовать другую систему управления версиями с Capistrano, отличную от той, которую они предоставляют (Git, SVN и т.

Rake.application.options.trace = true

Этот файл загружался с помощью плагинов Capistrano, но по умолчанию они не требуются, пока не будут использованы в Capfile.Когда мы создали собственный драгоценный камень с новым плагином, мы просто добавили новый драгоценный камень в Gemfile нашего приложения, которое загружает файлы по умолчанию.Итак, наш файл плагина выглядел так:

# custom_gem/lib/capistrano/scm/custom_vc.rb
require 'capistrano/scm/plugin'
class Capistrano::SCM::CustomVC < Capistarno::SCM::Plugin
  # ... Mimic the capistrano/lib/capistrano/scm/git.rb in the Capistrano gem.
end

Верхняя строка, которая требует capistrano/scm/plugin, в конечном итоге требовала capistrano-lib/capistrano/all.rb, который устанавливал трассировку для всех задач Rake.

Решением было просто добавить require: false в наш Gemfile для пользовательского самоцвета.

# Gemfile
group :development do
  gem 'capistrano_custom_vc', require: false
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...