Mercurial > hg > soundsoftware-site
view extra/soundsoftware/get-statistics.rb @ 973:30040a8e3a88 get_statistics
fixed counting of model figures
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Fri, 19 Oct 2012 17:19:21 +0100 |
parents | 6bd8364eafae |
children | 0befb332f41a |
line wrap: on
line source
# this script will get stats from the repo and print them to stdout # USAGE: # ./script/runner -e production extra/soundsoftware/get-statistics.rb # d1 = Date.parse("20101201") # => 1 Dec 2010 d2 = Date.today def months_between(d1, d2) months = [] start_date = Date.civil(d1.year, d1.month, 1) end_date = Date.civil(d2.year, d2.month, 1) raise ArgumentError unless d1 <= d2 while (start_date < end_date) months << start_date start_date = start_date >>1 end months << end_date end def weeks_between(d1, d2) weeks = [] start_date = Date.civil(d1.year, d1.month, 1) end_date = Date.civil(d2.year, d2.month, 1) raise ArgumentError unless d1 <= d2 while (start_date < end_date) weeks << start_date start_date = start_date + 1.week end weeks << end_date end # dates = months_between(d1, d2) dates = weeks_between(d1, d2) dates.each do |date| users = User.find(:all, :conditions => {:created_on => d1..date}) all_projects = Project.find(:all, :conditions => {:created_on => d1..date}) private_projects = Project.find(:all, :conditions => {:created_on => d1..date, :is_public => false}) top_level_and_private_projects = Project.find(:all, :conditions => {:created_on => d1..date, :is_public => false, :parent_id => nil}) puts "#{date} #{users.count} #{all_projects.count} #{private_projects.count} #{top_level_and_private_projects.count}\n" end