Class: ActiveAnalytics::ViewsPerDay
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- ActiveAnalytics::ViewsPerDay
- Defined in:
- app/models/active_analytics/views_per_day.rb
Defined Under Namespace
Constant Summary collapse
- SLASH =
"/"
Class Method Summary collapse
- .append(params) ⇒ Object
- .group_by_date ⇒ Object
- .group_by_page ⇒ Object
- .group_by_referrer_page ⇒ Object
- .group_by_referrer_site ⇒ Object
- .group_by_site ⇒ Object
- .split_referrer(referrer) ⇒ Object
- .to_histogram ⇒ Object
Class Method Details
.append(params) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'app/models/active_analytics/views_per_day.rb', line 61 def self.append(params) total = params.delete(:total) || 1 params[:site] = params[:site].downcase if params[:site] 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] where(params).first.try(:increment!, :total, total) || create!(params.merge(total: total)) end |
.group_by_date ⇒ Object
53 54 55 |
# File 'app/models/active_analytics/views_per_day.rb', line 53 def self.group_by_date group(:date).select("date, sum(total) AS total") end |
.group_by_page ⇒ Object
35 36 37 38 39 |
# File 'app/models/active_analytics/views_per_day.rb', line 35 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_page ⇒ Object
47 48 49 50 51 |
# File 'app/models/active_analytics/views_per_day.rb', line 47 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_site ⇒ Object
41 42 43 44 45 |
# File 'app/models/active_analytics/views_per_day.rb', line 41 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_site ⇒ Object
29 30 31 32 33 |
# File 'app/models/active_analytics/views_per_day.rb', line 29 def self.group_by_site group(:site).pluck("site, SUM(total)").map do |row| Site.new(row[0], row[1]) end end |
.split_referrer(referrer) ⇒ Object
72 73 74 75 76 77 78 79 80 |
# File 'app/models/active_analytics/views_per_day.rb', line 72 def self.split_referrer(referrer) return [nil, nil] if referrer.blank? if (uri = URI(referrer)).host.present? [uri.host, uri.path.presence] else strings = referrer.split(SLASH, 2) [strings[0], strings[1] ? SLASH + strings[1] : nil] end end |