require 'rubygems' require 'hash-persistent/resource' require 'hash-persistent/counter' require File.expand_path(File.dirname(__FILE__) + '/url_filter') module Rack module TicketOffice class Ticket include HashPersistent::Resource attr_reader :filters attr_accessor :user def initialize(filter_initializers) begin @filters = filter_initializers.collect do |filter_initializer| UrlFilter.new(filter_initializer) end rescue raise ArgumentError end raise ArgumentError if @filters.empty? end def match_any?(env) @filters.any? do |filter| filter.match(env) end end def ==(other) return (self.class == other.class) && (self.filters == other.filters) end end end end