class Pluggaloid::Filter
Public Class Methods
cancel!(result=false)
click to toggle source
フィルタ内部で使う。フィルタの実行をキャンセルする。Plugin#filtering はfalseを返し、 イベントのフィルタの場合は、そのイベントの実行自体をキャンセルする。 また、 result が渡された場合、Event#filtering の戻り値は result になる。
# File lib/pluggaloid/filter.rb, line 6 def self.cancel!(result=false) throw :filter_exit, result end
new(event, **kwrest, &callback)
click to toggle source
Args¶ ↑
- event
-
監視するEventのインスタンス
- name:
-
名前(String | nil)
- slug:
-
フィルタスラッグ(Symbol | nil)
- tags:
-
Pluggaloid::HandlerTag|Array フィルタのタグ
- &callback
-
コールバック
Calls superclass method
Pluggaloid::Handler.new
# File lib/pluggaloid/filter.rb, line 15 def initialize(event, **kwrest, &callback) super @callback = Proc.new event.add_filter self end
Public Instance Methods
detach()
click to toggle source
filtering(*args)
click to toggle source
イベントを実行する
Args¶ ↑
- *args
-
イベントの引数
Return¶ ↑
加工後の引数の配列
# File lib/pluggaloid/filter.rb, line 25 def filtering(*args) length = args.size result = @callback.call(*args, &self.class.method(:cancel!)) if length != result.size raise Pluggaloid::FilterError, "filter changes arguments length (#{length} to #{result.size})" end result end