我应该如何格式化我的保护文件以监视除日志文件之外的所有文件



Guard现在真的开始挑剔我了。我想我有一个很好的正则表达式来选择我项目中的所有文件,除了扩展名为"log"的文件:

防护文件:

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

悬钩子永久链接:http://rubular.com/r/qPyeSs54BF

但这没有任何结果。我保存任何文件,而警卫就像柠檬一样坐在那里。太烦人了。

当我这样做的时候也是一样:

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

悬钩子永久链接:http://rubular.com/r/UxFXyq9lRm

这才是真正让我着迷的地方。正如你从rubular链接中看到的,它是完全有效的正则表达式,但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

那么,我应该如何在我的保护文件中实现这一点呢?

简短回答:你没有。如果以任何方式修改其他特定文件集,您可以告诉Guard将特定文件集(因为没有更好的方法来引用regex结果)传递给特定插件。

警卫"正常工作"

  1. Guard必须已经准备好监视Gemfile所在的目录(尽管这是特定于平台/适配器的)
  2. 插件的设计是为了响应更改(修改、添加或删除)
  3. 插件必须设计为实际处理该文件(而不是忽略更改)

来源:https://github.com/guard/guard/wiki/Understanding-Guard

我建议任何有兴趣使用Guard的人访问上面的链接。

相关内容

  • 没有找到相关文章

最新更新