Class: Spree::Report::TimedResult

Inherits:
Result
  • Object
show all
Defined in:
app/reports/spree/report/timed_result.rb

Instance Attribute Summary

Attributes inherited from Result

#end_date, #observations, #report, #start_date, #time_scale

Instance Method Summary collapse

Methods inherited from Result

#chart_json, charts, #initialize, #query_results, #search_attributes, #time_dimension, #to_h, #total_pages

Constructor Details

This class inherits a constructor from Spree::Report::Result

Instance Method Details

#build_empty_observationsObject



11
12
13
# File 'app/reports/spree/report/timed_result.rb', line 11

def build_empty_observations
  @observations = Spree::Report::DateSlicer.slice_into(start_date, end_date, time_scale, self.class::Observation)
end

#build_report_observationsObject



5
6
7
8
9
# File 'app/reports/spree/report/timed_result.rb', line 5

def build_report_observations
  query_results
  build_empty_observations
  populate_observations
end

#headersObject



34
35
36
# File 'app/reports/spree/report/timed_result.rb', line 34

def headers
  [time_headers] + super
end

#populate_observationsObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/reports/spree/report/timed_result.rb', line 15

def populate_observations
  observation_iter = @observations.each
  current_observation = @observations.present? ? observation_iter.next : nil
  @results.each do |result|
    if current_observation.present?
      begin
        until current_observation.describes? result, time_scale
          current_observation = observation_iter.next
        end

        current_observation.populate(result)
        current_observation = observation_iter.next
      rescue StopIteration
        break
      end
    end
  end
end