Class: Aspire::Enumerator::ReportEnumerator
- Defined in:
- lib/aspire/enumerator/report_enumerator.rb
Overview
Enumerates rows from an exported Aspire report CSV (All Lists, All User Profiles etc.) with optional filtering
Instance Attribute Summary collapse
-
#file ⇒ String
The filename of the report.
-
#filters ⇒ Array<Proc>
A list of filters to select rows for processing.
Attributes inherited from Base
Instance Method Summary collapse
-
#enumerate(*_args, **_kwargs) ⇒ void
Enumerates the report rows.
-
#initialize(file = nil, filters = nil) ⇒ void
constructor
Initialises a new ListReport instance.
Methods inherited from Base
Constructor Details
#initialize(file = nil, filters = nil) ⇒ void
Initialises a new ListReport instance
26 27 28 29 |
# File 'lib/aspire/enumerator/report_enumerator.rb', line 26 def initialize(file = nil, filters = nil) self.file = file self.filters = filters end |
Instance Attribute Details
#file ⇒ String
Returns the filename of the report.
13 14 15 |
# File 'lib/aspire/enumerator/report_enumerator.rb', line 13 def file @file end |
#filters ⇒ Array<Proc>
Returns a list of filters to select rows for processing.
17 18 19 |
# File 'lib/aspire/enumerator/report_enumerator.rb', line 17 def filters @filters end |
Instance Method Details
#enumerate(*_args, **_kwargs) ⇒ void
This method returns an undefined value.
Enumerates the report rows
33 34 35 36 37 |
# File 'lib/aspire/enumerator/report_enumerator.rb', line 33 def enumerate(*_args, **_kwargs) CSV.foreach(file, converters: date_converter, headers: true, encoding: 'ISO-8859-1') do |row| yielder << row if filter(row) end end |