class Papercall::Analysis
Attributes
accepted[R]
confirmed[R]
highly_rated[R]
low_rated[R]
maybe[R]
rejected[R]
reviewers[R]
submissions[R]
summary[R]
talks_missing_reviews[R]
talks_with_many_reviews[R]
talks_without_feedback[R]
talks_without_reviews[R]
waitlisted[R]
Public Class Methods
new(submissions)
click to toggle source
# File lib/papercall/analysis.rb, line 18 def initialize submissions @output = Papercall.configuration.output @submissions = submissions @reviewers = {} @talks_without_reviews = [] @talks_missing_reviews = [] @talks_with_many_reviews = [] @talks_without_feedback = [] @highly_rated = [] @low_rated = [] @maybe = [] @accepted = [] @waitlisted = [] @rejected = [] @confirmed = [] analyze end
Public Instance Methods
number_accepted()
click to toggle source
# File lib/papercall/analysis.rb, line 76 def number_accepted @accepted.size end
number_completed()
click to toggle source
# File lib/papercall/analysis.rb, line 48 def number_completed @submissions.size - @talks_missing_reviews.size end
number_confirmed()
click to toggle source
# File lib/papercall/analysis.rb, line 88 def number_confirmed @confirmed.size end
number_of_active_reviewers()
click to toggle source
# File lib/papercall/analysis.rb, line 40 def number_of_active_reviewers @reviewers.size end
number_of_highly_rated()
click to toggle source
# File lib/papercall/analysis.rb, line 52 def number_of_highly_rated @highly_rated.size end
number_of_low_rated()
click to toggle source
# File lib/papercall/analysis.rb, line 56 def number_of_low_rated @low_rated.size end
number_of_maybes()
click to toggle source
# File lib/papercall/analysis.rb, line 60 def number_of_maybes @maybe.size end
number_of_submissions()
click to toggle source
# File lib/papercall/analysis.rb, line 36 def number_of_submissions @submissions.size end
number_of_waitlisted()
click to toggle source
# File lib/papercall/analysis.rb, line 80 def number_of_waitlisted @waitlisted.size end
number_rejected()
click to toggle source
# File lib/papercall/analysis.rb, line 84 def number_rejected @rejected.size end
number_with_few_reviews()
click to toggle source
# File lib/papercall/analysis.rb, line 64 def number_with_few_reviews @talks_missing_reviews.size end
number_with_many_reviews()
click to toggle source
# File lib/papercall/analysis.rb, line 68 def number_with_many_reviews @talks_with_many_reviews.size end
number_without_feedback()
click to toggle source
# File lib/papercall/analysis.rb, line 44 def number_without_feedback @talks_without_feedback.size end
number_without_reviews()
click to toggle source
# File lib/papercall/analysis.rb, line 72 def number_without_reviews @talks_without_reviews.size end
Private Instance Methods
analyze()
click to toggle source
# File lib/papercall/analysis.rb, line 95 def analyze start_time = Time.now print 'Performing analysis...' if @output @submissions.each do |submission| submission.ratings.each do |rating| if !(@reviewers.include? rating.user.name) @reviewers[rating.user.name] = [{ id: rating.submission_id }] else @reviewers[rating.user.name] << { id: rating.submission_id } end end @talks_without_reviews << { id: submission.id, submission: submission } if submission.no_reviews? @talks_with_many_reviews << { id: submission.id, submission: submission } if submission.too_many_reviews? @talks_missing_reviews << {id: submission.id, submission: submission} unless submission.enough_reviews? @talks_without_feedback << { id: submission.id, submission: submission } if submission.no_feedback? @highly_rated << { id: submission.id, submission: submission } if submission.highly_rated? @low_rated << { id: submission.id, submission: submission } if submission.low_rated? @maybe << { id: submission.id, submission: submission } if submission.maybe? @accepted << { id: submission.id, submission: submission } if submission.accepted? @waitlisted << { id: submission.id, submission: submission } if submission.waitlisted? @rejected << { id: submission.id, submission: submission } if submission.rejected? @confirmed << { id: submission.id, submission: submission } if submission.confirmed? end @summary = build_summary puts "finished in #{Time.now - start_time} seconds." if @output end
build_summary()
click to toggle source
# File lib/papercall/analysis.rb, line 122 def build_summary summary = {} summary['numSubmissions'] = @submissions.size summary['numActiveReviewers'] = @reviewers.size summary['numWithoutFeedback'] = @talks_without_feedback.size summary['numCompleted'] = @submissions.size - @talks_missing_reviews.size summary['numHighlyRated'] = @highly_rated.size summary['numLowRated'] = @low_rated.size summary['numMaybe'] = @maybe.size summary['numLessThanThreeReviews'] = @talks_missing_reviews.size summary['numWithFourOrMoreReviews'] = @talks_with_many_reviews.size summary['numWithoutReviews'] = @talks_without_reviews.size summary['numAccepted'] = @accepted.size summary['numWaitlisted'] = @waitlisted.size summary['numRejected'] = @rejected.size summary['numConfirmed'] = @confirmed.size summary end