Sha256: 6006ec205aa4841b0cdb14a738401b2a3673850e948d4397790fc5f19eb22801

Contents?: true

Size: 338 Bytes

Versions: 4

Compression:

Stored size: 338 Bytes

Contents

module RoutingFilter
  class Chain < Array
    def <<(filter)
      filter.previous, last.next = last, filter if last
      super
    end
    
    def run(method, *args, &final)
      RoutingFilter.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.3 lib/routing_filter/chain.rb
routing-filter-0.1.2 lib/routing_filter/chain.rb
routing-filter-0.1.1 lib/routing_filter/chain.rb
routing-filter-0.1.0 lib/routing_filter/chain.rb