Skip to content
Extraits de code Groupes Projets
Valider 6a5f4488 rédigé par Ilya Zhitomirskiy's avatar Ilya Zhitomirskiy
Parcourir les fichiers

added comment count correlation

parent 5f324f73
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -21,6 +21,17 @@ class Statistics
SQL
end
def comments_count_sql
<<SQL
SELECT users.id AS id, count(comments.id) AS count
FROM users
JOIN people ON people.owner_id = users.id
LEFT OUTER JOIN comments ON people.id = comments.author_id
#{self.where_clause_sql}
GROUP BY users.id
SQL
end
def invites_sent_count_sql
<<SQL
SELECT users.id AS id, count(invitations.id) AS count
......@@ -90,13 +101,12 @@ SQL
def generate_correlations
result = {}
[:posts_count, :invites_sent_count, #:tags_followed_count,
[:posts_count, :comments_count, :invites_sent_count, #:tags_followed_count,
:mentions_count, :contacts_sharing_with_count].each do |metric|
result[metric] = self.correlate(metric,:sign_in_count)
end
result
end
def correlation(x_array, y_array)
x = x_array.to_scale
......
......@@ -20,6 +20,15 @@ describe Statistics do
end
end
describe '#comments_count_sql' do
it "pulls back an array of post counts and ids" do
sm = Factory.create(:status_message, :author => alice.person)
bob.comment("sup", :post => sm)
User.connection.select_all(@stats.comments_count_sql).should =~ @result
end
end
describe '#invites_sent_count_sql' do
it "pulls back an array of invite counts and ids" do
Invitation.batch_invite(["a@a.com"], :sender => bob, :aspect => bob.aspects.first, :service => 'email')
......@@ -64,7 +73,7 @@ describe Statistics do
end
end
["posts_count", "invites_sent_count", "tags_followed_count",
["posts_count", "comments_count", "invites_sent_count", "tags_followed_count",
"mentions_count", "sign_in_count", "contacts_sharing_with_count" ].each do |method|
it "#{method}_sql calls where_sql" do
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter