Как мне отформатировать мой файл защиты, чтобы посмотреть все файлы, кроме файлов журнала?

Охранник действительно начинает раздражать меня сейчас. Думаю, у меня было хорошее регулярное выражение для выбора всех файлов в моем проекте, кроме тех, которые имеют расширение 'log':

Guardfile:

   guard :rspec do
      watch(%r{^.+$(?<!\.log)})
   end

Rubular Постоянная ссылка: http://rubular.com/r/qPyeSs54BF

Но это ничего не дает. Я сохраняю ЛЮБОЙ файл, и охранник просто сидит там, как лимон. Так раздражает.

То же самое, когда я делаю это:

   guard :rspec do
      watch(%r{^.+$})
   end

Рубулярная постоянная ссылка: http://rubular.com/r/UxFXyq9lRm

это то, что действительно меня заводит. Как видно из рублевых ссылок, это вполне допустимое регулярное выражение, но Guard не слушает его. Когда это не может просто принять регулярное выражение? Что за глупое дерьмо%r{}? И я бы хотел, чтобы Guard не пытался быть умным, запуская отдельные спецификации, когда я их настраивал, и затем запускал целые файлы спецификаций, когда я их настраивал.

Есть ли какая-то излишняя конфигурация где-нибудь, где я могу установить guard для запуска всех спецификаций, когда обновляется любой файл, кроме файла журнала, и ничего больше? Такая разумная вещь, которую хочется сделать, и это был полный кошмар.

Вот мои драгоценные камни:

источник " https://rubygems.org/"

group :development do
    gem 'capistrano'
    gem 'guard-rspec'
    gem 'guard-livereload', require: false
    gem 'rb-fsevent'
    gem 'debugger'
end

group :development, :test do
    gem 'rspec-rails', '~> 2.14.0'
    gem 'sqlite3'
end

group :test do
    gem 'factory_girl_rails'
    gem 'capybara', '~> 2.2.0'
    gem 'selenium-webdriver'
    # uses a program called 'libqtwebkit-dev' to build. To install 'libqtwebkit-dev' in Ubuntu, run
    # sudo apt-get install libqtwebkit-dev

#   gem 'capybara-webkit'

    gem 'rb-readline'
    gem 'launchy'
    gem 'database_cleaner'
end

group :production do
    gem 'pg'
end

# standard library
gem 'rails', '4.0.1'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'

group :doc do
  gem 'sdoc', require: false
end

# custom 
gem 'devise'
gem 'puma'

ОБНОВИТЬ

Может быть, это регулярное выражение немного лучше:

.+?\.(?!log).+

http://rubular.com/r/dsYKzUE8FF

Так как же мне реализовать это в моем файле защиты?

1 ответ

Краткий ответ: нет. Вы приказываете Guard передавать определенные наборы файлов (из-за отсутствия лучшего способа ссылаться на результаты регулярных выражений) для определенных плагинов, если другие конкретные наборы файлов будут изменены каким-либо образом.

Для гвардии, чтобы "работать должным образом"

  1. Guard должен УЖЕ следить за каталогом, в котором находится Gemfile (хотя это зависит от платформы / адаптера).
  2. Плагин был разработан, чтобы реагировать на вид изменений (модифицированных, добавленных или удаленных).
  3. Плагин должен быть спроектирован так, чтобы фактически обрабатывать этот файл (и не игнорировать изменения)

источник: https://github.com/guard/guard/wiki/Understanding-Guard

Я рекомендую всем, кто заинтересован в использовании Guard, перейти по ссылке выше.

Другие вопросы по тегам