Sha256: d73595d1e6d1e285187372489853d4445b5fc0360d0549d0a66359e3f850ccc7

Contents?: true

Size: 1.32 KB

Versions: 32

Compression:

Stored size: 1.32 KB

Contents

module RequestLogAnalyzer::Filter

  # Reject all requests not in given timespan
  # Options
  # * <tt>:after</tt> Only keep requests after this DateTime.
  # * <tt>:before</tt> Only keep requests before this DateTime.
  class Timespan < Base

    attr_reader :before, :after

    def initialize(file_format, options = {})
      @after  = nil
      @before = nil
      super(file_format, options)
      setup_filter
    end


    # Convert the timestamp to the correct formats for quick timestamp comparisons.
    # These are stored in the before and after attr_reader fields.
    def setup_filter
      @after  = @options[:after].strftime('%Y%m%d%H%M%S').to_i  if options[:after]
      @before = @options[:before].strftime('%Y%m%d%H%M%S').to_i if options[:before]
    end

    # Returns request if:
    #   * @after <= request.timestamp <= @before
    #   * @after <= request.timestamp
    #   * request.timestamp <= @before
    # Returns nil otherwise
    # <tt>request</tt> Request object.
    def filter(request)
      if @after && @before && request.timestamp <= @before && @after <= request.timestamp
        return request
      elsif @after && @before.nil? && @after <= request.timestamp
        return request
      elsif @before && @after.nil? && request.timestamp <= @before
        return request
      end

      return nil
    end
  end

end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
request-log-analyzer-1.11.0 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.10.1 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.10.0 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.10 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.9 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.8 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.7 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.6 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.5 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.4 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.3 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.2 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.1 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.9.0 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.8.1 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.8.0 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.7.0 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.6.4 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.6.3 lib/request_log_analyzer/filter/timespan.rb
request-log-analyzer-1.6.2 lib/request_log_analyzer/filter/timespan.rb