【问题标题】:Guard: batch watch notificationsGuard:批量观看通知
【发布时间】:2016-04-15 04:20:58
【问题描述】:

是否可以批量处理guard'swatch 通知?

例如,如果移动子文件夹,watch 会为每个文件发出一个事件。如果有变化,我真正想要的是一个通知,而不是几个。

【问题讨论】:

  • 我认为目前不可能,但 Guard 似乎应该以某种方式消除这些事件。
  • 不幸的是,文件夹不是文件)。例如,您可以在 Guardfile 中编写一些代码,该代码将检查文件夹、子文件夹或其他非 .rb 文件的存在并为它们运行测试。

标签: ruby guard


【解决方案1】:

虽然这不会批量更改,因此没有这样做的所有好处,但如果您需要做的只是在一次保存多个文件后防止多次构建,您可以使用去抖动机制,例如以下:

LAST_REBUILD = Time.now
DEBOUNCE = 2 #seconds
guard :shell do
  watch(%r{PATTERN}) do |m|
    since_last = Time.now - LAST_REBUILD
    if since_last > DEBOUNCE
      n 'Rebuilding'
      if system('LONG_RUNNING_PROCESS')
        n 'Build complete'
        LAST_REBUILD = Time.now
      end
    else
      n "Skipping rebuild after only #{since_last} seconds"
  end
end

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 2017-02-26
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2016-09-07
    • 2014-12-17
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多