Class: BehaviorLens::ReportGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/behavior_lens/report_generator.rb

Class Method Summary collapse

Class Method Details

.generate(click_tracker, session_tracker, event_tracker, format) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/behavior_lens/report_generator.rb', line 8

def self.generate(click_tracker, session_tracker, event_tracker, format)
  # Fetch data from the trackers
  clicks = click_tracker.report
  sessions = session_tracker.report
  events = event_tracker.report

  data = {
    clicks: clicks.map { |click| { link: click[:link], count: click[:count] } },
    sessions: sessions.map do |session|
      { user_id: session[:user_id], start_time: session[:start_time], end_time: session[:end_time] }
    end,
    events: events.map { |event| { name: event[:name], metadata: event[:metadata], timestamp: event[:timestamp] } }
  }

  case format
  when :json
    JSON.pretty_generate(data)
  when :csv
    generate_csv(data)
  else
    data.to_s
  end
end