hook の仕組みを見直す
-
jugyo
- Tag set to enhancement
- Assigned user set to jugyo
現状の hook 周りの動作と未実装のところを簡単に絵にしてみました。 青いところが hook が呼ばれるポイントです。

filter が抜けてるな。
-
jugyo
コマンドの実行前と実行後の hook の処理を実装した。

-
jugyo
追加した順に hook が呼ばれるようにする必要があるなー。
-
jugyo
hook の定義の仕方ですが、新しいやり方は以下のようになります。
Termtter::Client.register_hook( :name => :modify_arg_hook_sample, :points => [:modify_arg_for_update], :exec_proc => proc {|cmd, arg| arg + '\(^o^)/'} ):name は一意である必要があります。 同じ :name の hook を複数定義することはできません。 もし同じ :name の hook が複数定義されていた場合は、後に定義されたものだけが有効になります(上書きされる形になります)。
:points には hook が呼び出されるポイントを指定します。 複数指定できます。
:exec_proc には hook の処理を書きます。 hook によってブロックに渡される引数が違ってきます(これはちゃんとドキュメント化する必要があるなぁ)。 hook によってはブロックの戻り値を利用するものもあります。
hook の仕様はこれで完全に決定というわけではなくて、もっとこうしてほしいとか、要望があれば検討しますー。
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

