rsvd_test.rb

Path: lib/algorithms/rank/rsvd/rsvd_test.rb
Last Update: Sat Jul 11 12:53:13 -0400 2009

Required files

rubygems   activerecord   linalg  

Methods

Included Modules

Linalg RsvdFast

Public Instance methods

[Source]

    # File lib/algorithms/rank/rsvd/rsvd_test.rb, line 8
 8: def make_vote_data(question_id)
 9:    ActiveRecord::Base.establish_connection(
10:     :adapter  => "mysql",
11:     :host     => "localhost",
12:     :username => "princeton",
13:     :password => "princeton",
14:     :database => "pairwise"
15:   )
16:   result = ActiveRecord::Base.connection.execute(
17:     "SELECT items_votes.item_id AS winner_id, items_prompts.item_id AS
18:     loser_id, votes.tracking FROM votes INNER JOIN prompts ON (prompts.id=votes.prompt_id
19:     AND prompts.question_id=#{question_id}) INNER JOIN items_votes ON
20:     (items_votes.vote_id=votes.id) INNER JOIN items_prompts ON
21:     items_prompts.prompt_id=prompts.id AND items_prompts.item_id!=
22:     items_votes.item_id"
23:   )
24:   votes = {}
25:   visits = []
26:   items = []
27:   # user votes.tracking to distinguish visitors
28:   while rec = result.fetch_hash
29:     winner_id, loser_id = rec['winner_id'], rec['loser_id']
30:     for id in [winner_id, loser_id]
31:       items << id unless items.include?(id)
32:     end
33:     winner = items.index(winner_id)
34:     loser = items.index(loser_id)
35: 
36:     tracking = rec['tracking']
37:     unless visits.include?(tracking)
38:       votes[visits.length] = []
39:       visits << tracking
40:     end
41:     visit = visits.index(tracking)
42:     votes[visit] << winner << loser
43:   end
44:   result.free
45:   [votes, visits, items]
46: end

[Validate]