Sha256: 2344c7350f87f76156ca2b928611c18599a624309cf9ce010b65d50596417396
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
module Mitamirri class ContentReport # Search params attr_accessor :site attr_accessor :time_period attr_accessor :visit_kind # Initialization def initialize(args = {}) args.each{|k,v| self.send("#{k}=",v) if self.respond_to?(k)} self.time_period = args[:time_period] || 'past 3 months' self.sessions end def sessions @sessions ||= TrackableSession.search( :site => self.site, :time_period => self.time_period, :visit_kind => self.visit_kind ) end # Generate an array of dates spanning the appropriate time period. def dates return @dates if @dates @dates = [] case self.time_period when 'past month' _increment = 1 when 'past 3 months' _increment = 2 when 'past 6 months' _increment = 5 when 'past 12 months' _increment = 11 else 'all time' _increment = 24 end (1.._increment).each{ |i| @dates << (Time.zone.now - i.months).beginning_of_month } @dates.reverse! @dates << Time.zone.now.end_of_month @dates end # Graphing data def pages_series(args) TrackableAction.pages_histogram(args).map{|datum| ContentStat.new(:url => datum[0], :views => datum[1].to_i)} end def entrance_pages_series(args) TrackableSession.entrance_pages_histogram(args).map{|datum| ContentStat.new(:url => datum[0], :views => datum[1].to_i)} end def exit_pages_series(args) TrackableSession.exit_pages_histogram(args).map{|datum| ContentStat.new(:url => datum[0], :views => datum[1].to_i)} end # Inner stat classes class ContentStat attr_accessor :url attr_accessor :views def initialize(args) args.each{ |k,v| self.send("#{k}=", v) } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mitamirri-0.13.8 | lib/mitamirri/content_report.rb |