Class: Noventius::PostProcessors::DateRanges
- Inherits:
-
Object
- Object
- Noventius::PostProcessors::DateRanges
- Defined in:
- lib/noventius/post_processors/date_ranges.rb
Defined Under Namespace
Classes: BaseRange, DayRange, MonthRange
Constant Summary collapse
- DAY =
:day- MONTH =
:month- HOUR =
:hour- DAY_OF_WEEK =
:dow- MONTH_OF_YEAR =
:moy- STEPS =
[DAY, MONTH, HOUR, DAY_OF_WEEK, MONTH_OF_YEAR]
- DATE_STEPS =
[DAY, MONTH]
Instance Method Summary collapse
-
#initialize(column_index_or_name, step, time_zone = 'America/Montevideo') ⇒ DateRanges
constructor
A new instance of DateRanges.
- #process(report, rows) ⇒ Object
Constructor Details
#initialize(column_index_or_name, step, time_zone = 'America/Montevideo') ⇒ DateRanges
Returns a new instance of DateRanges.
16 17 18 19 20 21 22 |
# File 'lib/noventius/post_processors/date_ranges.rb', line 16 def initialize(column_index_or_name, step, time_zone = 'America/Montevideo') fail ArgumentError, "Step not supported [#{step}]." unless STEPS.include?(step.to_sym) @column_index_or_name = column_index_or_name @step = step.to_sym @time_zone = time_zone end |
Instance Method Details
#process(report, rows) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/noventius/post_processors/date_ranges.rb', line 24 def process(report, rows) return [] if rows.empty? rows_by_date = group_rows_by_date(report, rows) start_date = rows_by_date.keys.min end_date = rows_by_date.keys.max empty_row = build_empty_row(report) build_range(start_date, end_date).map do |value| rows_by_date.fetch(value, [value].concat(empty_row)) end end |