Sha256: ca67f137269fcb76625870699f76022f985139baff065789adbf8e5f0de24a3e

Contents?: true

Size: 325 Bytes

Versions: 4

Compression:

Stored size: 325 Bytes

Contents

module RoutingFilter
  class Chain < Array
    def <<(filter)
      filter.previous, last.next = last, filter if last
      super
    end
    
    def run(method, *args, &final)
      active? ? first.run(method, *args, &final) : final.call
    end
    
    def active?
      RoutingFilter.active? && !empty?
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
routing-filter-0.1.7 lib/routing_filter/chain.rb
routing-filter-0.1.6 lib/routing_filter/chain.rb
routing-filter-0.1.5 lib/routing_filter/chain.rb
routing-filter-0.1.4 lib/routing_filter/chain.rb