Class: DataFilter::RangeOverlapFilter
- Inherits:
-
Object
- Object
- DataFilter::RangeOverlapFilter
- Defined in:
- lib/data_filter/range_overlap_filter.rb
Overview
Used to filter a data item by a set of ranges by seeing if the data field value intersects that range
Instance Method Summary collapse
-
#call(item) ⇒ Object
Filters the item.
-
#initialize(start_sym, end_sym, floor: nil, ceiling: nil, nil_default: nil) ⇒ RangeOverlapFilter
constructor
A new instance of RangeOverlapFilter.
Constructor Details
#initialize(start_sym, end_sym, floor: nil, ceiling: nil, nil_default: nil) ⇒ RangeOverlapFilter
Returns a new instance of RangeOverlapFilter.
20 21 22 23 24 25 26 |
# File 'lib/data_filter/range_overlap_filter.rb', line 20 def initialize(start_sym, end_sym, floor: nil, ceiling: nil, nil_default: nil) @start_sym = start_sym @end_sym = end_sym @floor = floor @ceiling = ceiling @nil_default = nil_default end |
Instance Method Details
#call(item) ⇒ Object
Filters the item
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/data_filter/range_overlap_filter.rb', line 32 def call(item) if item.respond_to?(@start_sym) && item.respond_to?(@end_sym) actual_start = item.public_send(@start_sym) actual_start = @nil_default if actual_start.nil? actual_end = item.public_send(@end_sym) actual_end = @nil_default if actual_end.nil? item if in_range?(actual_start, actual_end) end end |