Class: RequestLogAnalyzer::Filter::Timespan
- Defined in:
- lib/request_log_analyzer/filter/timespan.rb
Overview
Reject all requests not in given timespan Options
-
:afterOnly keep requests after this DateTime. -
:beforeOnly keep requests before this DateTime.
Instance Attribute Summary collapse
-
#after ⇒ Object
readonly
Returns the value of attribute after.
-
#before ⇒ Object
readonly
Returns the value of attribute before.
Attributes inherited from Base
Instance Method Summary collapse
-
#filter(request) ⇒ Object
Returns request if: * @after <= request.timestamp <= @before * @after <= request.timestamp * request.timestamp <= @before Returns nil otherwise
requestRequest object. -
#initialize(file_format, options = {}) ⇒ Timespan
constructor
A new instance of Timespan.
-
#setup_filter ⇒ Object
Convert the timestamp to the correct formats for quick timestamp comparisons.
Constructor Details
#initialize(file_format, options = {}) ⇒ Timespan
Returns a new instance of Timespan.
9 10 11 12 13 14 |
# File 'lib/request_log_analyzer/filter/timespan.rb', line 9 def initialize(file_format, = {}) @after = nil @before = nil super(file_format, ) setup_filter end |
Instance Attribute Details
#after ⇒ Object (readonly)
Returns the value of attribute after.
7 8 9 |
# File 'lib/request_log_analyzer/filter/timespan.rb', line 7 def after @after end |
#before ⇒ Object (readonly)
Returns the value of attribute before.
7 8 9 |
# File 'lib/request_log_analyzer/filter/timespan.rb', line 7 def before @before end |
Instance Method Details
#filter(request) ⇒ Object
Returns request if:
* @after <= request. <= @before
* @after <= request.
* request. <= @before
Returns nil otherwise request Request object.
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/request_log_analyzer/filter/timespan.rb', line 29 def filter(request) if @after && @before && request. && request. <= @before && @after <= request. return request elsif @after && @before.nil? && request. && @after <= request. return request elsif @before && @after.nil? && request. && request. <= @before return request end nil end |
#setup_filter ⇒ Object
Convert the timestamp to the correct formats for quick timestamp comparisons. These are stored in the before and after attr_reader fields.
18 19 20 21 |
# File 'lib/request_log_analyzer/filter/timespan.rb', line 18 def setup_filter @after = [:after].strftime('%Y%m%d%H%M%S').to_i if [:after] @before = [:before].strftime('%Y%m%d%H%M%S').to_i if [:before] end |