1

arduinoでLEDをオンにするガード用のカスタム通知機能を作成しようとしています。

とにかく、にファイルをlib/guard/notifiers追加し、に新しいカスタムクラスを追加することで機能Guard::Notifier::NOTIFIERSしますlib/guard/notifier.rb

ただし、新しい通知機能をガードジェムの一部にする必要はないと思うので、ジェムを作成したいと思います。カスタム通知機能のgemの例は見つかりませんでした。また、カスタム通知機能をガードに追加する方法を見つけるのに苦労しました。

これが私の最初の試みです。これは演算子を使用してカスタムクラスを追加しますGuard::Notifier::NOTIFIERS<<。ガードがrspec用にリロードされるため、機能しません(別のプロセスで推測しています)。要求があれば、そのデバッグに関する詳細情報を提供できます。

私の質問は、別の宝石としてカスタム通知機能を使用してガードを拡張するための最良の方法は何でしょうか?

そしてフォローアップ:これはガードに追加できる機能ですか?

私は通常、質問にgithubの問題を追加していましたが(ねえ、これを改善するのを手伝ってもらえますか?)、寄稿文書にはここで質問するように書かれています。

4

1 に答える 1

2

Guardコアチームが課題追跡システムでのGuardの使用法について質問したくないのは事実です。これは、私たちにとって非常に時間がかかり、優れたREADMEを読むのが面倒な場合が多いためです。StackOverflowで質問すると、ユーザーが自分自身を助ける可能性が高くなり、無料のサポートを提供する代わりにGuardを開発するための時間を解放できます。開発関連の質問については、Googleグループに案内します。ここでは、すべてのコアメンバーがメッセージを読んでおり、おそらく数時間以内に有能な回答が得られます。

エキゾチックな通知機能のプルリクエストはほとんど費用がかからないため、マージしてもかまいません。また、将来的にはそのモジュールを独自のgemに抽出する可能性が非常に高いため、 Listenの場合と同様に、他の人が通知機能を再利用できます。

最後にあなたの質問に答えるために:あなたは正しいです、guard-rspec通知機能はサブプロセスで実行されます、そしてこれが通知設定を共有するためのこの醜いハックを持っている理由ですそしてあなたの通知機能は機能しません。それが機能しない理由は、Guardがオプションで提供されたファイルのみを必要とする-rため、プラグインなしでロードされるためです。つまり、通知機能をrspecで機能させるには、次の可能性しかありません。

  • cliを使用してオプションに通知機能をロードします-rが、おそらくヘルパーメソッド(単純)を使用して、ファイルへの絶対パスを渡す必要があります。
  • Guard :: Notifierを拡張して、Guardプラグイン内の通知クラスを検索します(コストがかかります)。
  • rspec_argumentsメソッドにモンキーパッチを適用して、通知機能を含めます(非推奨)。
于 2013-03-26T12:52:44.210 に答える