Module: FilterChain

Included in:
Wakame::Trigger
Defined in:
lib/wakame/util.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



421
422
423
424
425
426
427
428
429
430
431
# File 'lib/wakame/util.rb', line 421

def self.included(klass)
  klass.class_eval {
    def self.filter_chain
      @filter_chain ||= []
    end
    
    def self.append_filter(&blk)
      self.filter_chain << blk
    end
  }
end

Instance Method Details

#run_filter(pass_obj = nil) ⇒ Object



433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
# File 'lib/wakame/util.rb', line 433

def run_filter(pass_obj=nil)
  retrieve_filter_chain { |filter_chain|
    filter_chain.each { |filter_proc|
      begin
        ret = filter_proc.call(pass_obj)
      rescue => e
        ret = false
      end

      unless ret
        raise 
      end
    }
  }
end