Sha256: ed52377728cd8f98ff7a892635d5896c05a56e52edd446b376f912926632579f

Contents?: true

Size: 872 Bytes

Versions: 1

Compression:

Stored size: 872 Bytes

Contents

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kissifer-rack-ticket-office-0.0.1 lib/rack/ticket-office/ticket.rb