我正在尝试为guard编写一个自定义通知程序,用于打开带有arduino的LED。
无论如何,我已经通过向lib/guard/notifiers
添加文件并将我的新自定义类添加到lib/guard/notifier.rb
中的Guard::Notifier::NOTIFIERS
来实现它。
但是,我不认为我的新通知器应该是guard gem的一部分,所以我想创建一个gem。我找不到自定义通知程序宝石的任何示例,而且我很难弄清楚如何将自定义通知程序添加到防护中。
Here is my initial attempt,adds my custom class to Guard::Notifier::NOTIFIERS
with the <<
operator。它不起作用,因为后卫重新加载了rspec(我在一个单独的过程中猜测)。如果需要,我可以提供有关我的调试的更多信息。
我的问题是:使用自定义通知程序作为单独的宝石扩展防范的最佳方法是什么?
后续跟进:这是一个可以添加到后卫的功能吗?
我通常会在问题中添加一个github问题(嘿,我可以帮助改善它吗?),但是贡献文件说要问这里。
答案 0 :(得分:2)
Guard核心团队确实不想在问题跟踪器中对Guard的使用有任何疑问,仅仅因为它对我们来说非常耗时,而且通常情况下人们只是懒得阅读优秀自述。在StackOverflow上提出要求,用户更有可能帮助自己,腾出时间来开发Guard,而不是提供免费支持。对于与开发相关的问题,我们引导人们访问Google group,其中所有核心成员都在阅读消息,您可能会在几个小时内得到一个称职的答案。
我不介意合并外来通知程序的拉取请求,因为它们几乎没有成本。我们很可能在将来将该模块提取到自己的gem中,因此其他人可以重用通知器功能,就像我们为Listen所做的那样。
最后解决您的问题:您是对的,guard-rspec通知程序在子进程中运行,这就是我们have this ugly hack to share通知设置和通知程序不起作用的原因。它不起作用的原因是Guard没有插件加载,因为it only requires files supplied with the -r
option。这意味着您只有以下可能性使通知程序与rspec一起使用:
cli
将通知程序加载到-r
选项中,但您需要将绝对路径传递给文件,可能使用辅助方法(简单)。