Class: ActiveAnalytics::ViewsPerDay

Inherits:
ApplicationRecord show all
Defined in:
app/models/active_analytics/views_per_day.rb

Defined Under Namespace

Classes: Day, Histogram, Page, Site

Class Method Summary collapse

Class Method Details

.append(params) ⇒ Object



110
111
112
113
114
115
116
117
# File 'app/models/active_analytics/views_per_day.rb', line 110

def self.append(params)
  params[:site] = params[:site].downcase if params[:site]
  params[:page] = params[:page].downcase if params[:page]
  params[:referrer_path] = nil if params[:referrer_path].blank?
  params[:referrer_path] = params[:referrer_path].downcase if params[:referrer_path]
  params[:referrer_host] = params[:referrer_host].downcase if params[:referrer_host]
  find_or_create_by!(params) if where(params).update_all("total = total + 1") == 0
end

.group_by_dateObject



100
101
102
103
104
# File 'app/models/active_analytics/views_per_day.rb', line 100

def self.group_by_date
  group(:date).pluck("date, SUM(total)").map do |row|
    Day.new(row[0], row[1])
  end
end

.group_by_pageObject



82
83
84
85
86
# File 'app/models/active_analytics/views_per_day.rb', line 82

def self.group_by_page
  group(:site, :page).pluck("site, page, SUM(total)").map do |row|
    Page.new(row[0], row[1], row[2])
  end
end

.group_by_referrer_pageObject



94
95
96
97
98
# File 'app/models/active_analytics/views_per_day.rb', line 94

def self.group_by_referrer_page
  group(:referrer_host, :referrer_path).pluck("referrer_host, referrer_path, SUM(total)").map do |row|
    Page.new(row[0], row[1], row[2])
  end
end

.group_by_referrer_siteObject



88
89
90
91
92
# File 'app/models/active_analytics/views_per_day.rb', line 88

def self.group_by_referrer_site
  group(:referrer_host).pluck("referrer_host, SUM(total)").map do |row|
    Site.new(row[0], row[1])
  end
end

.group_by_siteObject



76
77
78
79
80
# File 'app/models/active_analytics/views_per_day.rb', line 76

def self.group_by_site
  group(:site).pluck("site, SUM(total)").map do |row|
    Site.new(row[0], row[1])
  end
end

.to_histogramObject



106
107
108
# File 'app/models/active_analytics/views_per_day.rb', line 106

def self.to_histogram
  ViewsPerDay::Histogram.new(self)
end