Sha256: c94a09acdcea17417781a02e0eefc6379b1e9cedf2e442718a7bb224d5e2a033

Contents?: true

Size: 440 Bytes

Versions: 23

Compression:

Stored size: 440 Bytes

Contents

module RoutingFilter
  class Chain < Array
    def <<(filter)
      filter.previous, last.next = last, filter if last
      super
    end
    alias push <<

    def unshift(filter)
      filter.next, first.previous = first, filter if first
      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

23 entries across 23 versions & 5 rubygems

Version Path
routing-filter-codeur-0.7.1.2 lib/routing_filter/chain.rb
routing-filter-codeur-0.7.1.1 lib/routing_filter/chain.rb
routing-filter-codeur-0.7.1 lib/routing_filter/chain.rb
routing-filter-0.7.0 lib/routing_filter/chain.rb
routing-filter-0.6.3 lib/routing_filter/chain.rb
routing-filter-0.6.2 lib/routing_filter/chain.rb
routing-filter-0.6.1 lib/routing_filter/chain.rb
routing-filter-0.6.0 lib/routing_filter/chain.rb
routing-filter-0.5.1 lib/routing_filter/chain.rb
routing-filter-0.4.0.1 lib/routing_filter/chain.rb
routing-filter-0.4.0 lib/routing_filter/chain.rb
routing-filter-0.5.0 lib/routing_filter/chain.rb
routing-filter-0.4.0.pre lib/routing_filter/chain.rb
routing-filter-0.3.1 lib/routing_filter/chain.rb
routing-filter-0.3.0 lib/routing_filter/chain.rb
routing-filter-0.3.0.beta lib/routing_filter/chain.rb
routing-filter-0.2.4 lib/routing_filter/chain.rb
sayso-routing-filter-0.2.2.001 lib/routing_filter/chain.rb
vigetlabs-routing-filter-0.2.4 lib/routing_filter/chain.rb
aratak-routing-filter-0.2.4 lib/routing_filter/chain.rb