papercall 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/papercall/analysis.rb +23 -23
- data/lib/papercall/rest_fetcher.rb +19 -12
- data/lib/papercall/version.rb +1 -1
- data/papercall.gemspec +1 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab9ff289a7b73ca13abe407dbf7faf36ad50e5f5
|
4
|
+
data.tar.gz: eca379283228ab7e574ad8ce594e7b73db34bd37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d10215d20228deb40b8102efa206a9af260767cfe87899729ce134f1f1213c4c58b43f3e1e6c3bf21a4eba222bcf8da52ba022ef46bee82a96603c4d43ef8876
|
7
|
+
data.tar.gz: 478adce38dd114a1ce2e3a8606bfc7acf382577d98254bbbb89e0ea35fe25b5c90ba3d1f4b7bb55b6c2e05d1cb9f04945796a1d6f13b40de58901f74c77f60ee
|
data/.gitignore
CHANGED
data/lib/papercall/analysis.rb
CHANGED
@@ -19,26 +19,26 @@ module Papercall
|
|
19
19
|
|
20
20
|
def analyze
|
21
21
|
startTime = Time.now
|
22
|
-
print
|
22
|
+
print 'Performing analysis...'
|
23
23
|
@analysis['submissions'].each do |submission|
|
24
|
-
submission[
|
25
|
-
|
26
|
-
@analysis['reviewers'][rating[
|
24
|
+
submission['ratings'].each do |rating|
|
25
|
+
if !(@analysis['reviewers'].include? rating['user']['name'])
|
26
|
+
@analysis['reviewers'][rating['user']['name']] = [{:id => rating['submission_id']}]
|
27
27
|
else
|
28
|
-
@analysis['reviewers'][rating['user']['name']] << {:id => rating[
|
28
|
+
@analysis['reviewers'][rating['user']['name']] << {:id => rating['submission_id']}
|
29
29
|
end
|
30
30
|
end
|
31
|
-
@analysis['talksWithoutReviews'] << {:id => submission[
|
32
|
-
@analysis['talksWithFourOrMoreReviews'] << {:id => submission[
|
33
|
-
@analysis['talksWithLessThanThreeReviews'] << {:id => submission[
|
34
|
-
@analysis['talksWithoutFeedback'] << {:id => submission[
|
35
|
-
@analysis['highlyRated'] << {:id => submission[
|
36
|
-
@analysis['lowRated'] << {:id => submission[
|
37
|
-
@analysis['maybe'] << {:id => submission[
|
38
|
-
@analysis['accepted'] << {:id => submission[
|
39
|
-
@analysis['waitlist'] << {:id => submission[
|
40
|
-
@analysis['rejected'] << {:id => submission[
|
41
|
-
@analysis['confirmed'] << {:id => submission[
|
31
|
+
@analysis['talksWithoutReviews'] << {:id => submission['id'], :submission => submission} if submission['ratings'].empty?
|
32
|
+
@analysis['talksWithFourOrMoreReviews'] << {:id => submission['id'], :submission => submission} if submission['ratings'].size >= 4
|
33
|
+
@analysis['talksWithLessThanThreeReviews'] << {:id => submission['id'], :submission => submission} if submission['ratings'].size < 3
|
34
|
+
@analysis['talksWithoutFeedback'] << {:id => submission['id'], :submission => submission} if submission['feedback'].empty?
|
35
|
+
@analysis['highlyRated'] << {:id => submission['id'], :submission => submission} if highlyRated? submission
|
36
|
+
@analysis['lowRated'] << {:id => submission['id'], :submission => submission} if lowRated? submission
|
37
|
+
@analysis['maybe'] << {:id => submission['id'], :submission => submission} if maybe? submission
|
38
|
+
@analysis['accepted'] << {:id => submission['id'], :submission => submission} if accepted? submission
|
39
|
+
@analysis['waitlist'] << {:id => submission['id'], :submission => submission} if waitlisted? submission
|
40
|
+
@analysis['rejected'] << {:id => submission['id'], :submission => submission} if rejected? submission
|
41
|
+
@analysis['confirmed'] << {:id => submission['id'], :submission => submission} if confirmed? submission
|
42
42
|
end
|
43
43
|
@analysis['summary'] = summary
|
44
44
|
puts "finished in #{Time.now - startTime} seconds."
|
@@ -48,11 +48,11 @@ module Papercall
|
|
48
48
|
private
|
49
49
|
|
50
50
|
def highlyRated?(submission)
|
51
|
-
submission[
|
51
|
+
submission['rating'] >= 75 && review_complete?(submission)
|
52
52
|
end
|
53
53
|
|
54
54
|
def lowRated?(submission)
|
55
|
-
submission[
|
55
|
+
submission['rating'] <= 25 && review_complete?(submission)
|
56
56
|
end
|
57
57
|
|
58
58
|
def maybe?(submission)
|
@@ -60,23 +60,23 @@ module Papercall
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def review_complete?(submission)
|
63
|
-
submission[
|
63
|
+
submission['ratings'].size >= 3
|
64
64
|
end
|
65
65
|
|
66
66
|
def accepted?(submission)
|
67
|
-
submission[
|
67
|
+
submission['state'] == 'accepted'
|
68
68
|
end
|
69
69
|
|
70
70
|
def rejected?(submission)
|
71
|
-
submission[
|
71
|
+
submission['state'] == 'rejected'
|
72
72
|
end
|
73
73
|
|
74
74
|
def waitlisted?(submission)
|
75
|
-
submission[
|
75
|
+
submission['state'] == 'waitlist'
|
76
76
|
end
|
77
77
|
|
78
78
|
def confirmed?(submission)
|
79
|
-
accepted?(submission) && submission[
|
79
|
+
accepted?(submission) && submission['confirmed'] == true
|
80
80
|
end
|
81
81
|
|
82
82
|
def summary
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'rest-client'
|
3
|
+
require 'parallel'
|
3
4
|
|
4
5
|
module Papercall
|
5
6
|
#Fetches submissions from Papercall REST API
|
@@ -25,43 +26,49 @@ module Papercall
|
|
25
26
|
RestClient::Request.execute(method: :get,
|
26
27
|
url: papercall_url,
|
27
28
|
headers: @auth_hash) # :timeout => 120
|
28
|
-
|
29
|
+
if raw_results
|
30
|
+
JSON.parse raw_results
|
31
|
+
else
|
32
|
+
[]
|
33
|
+
end
|
29
34
|
end
|
30
35
|
|
31
36
|
def fetch(*states)
|
32
|
-
states = [[
|
37
|
+
states = [%i[submitted accepted rejected waitlist declined]] if states == [[:all]]
|
33
38
|
states.flatten.each do |state|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
39
|
+
next unless state
|
40
|
+
start_time = Time.now
|
41
|
+
print "Fetching #{state} submissions from PaperCall API..."
|
42
|
+
instance_variable_set("@#{state}", papercall(submission_url(state.to_s)))
|
43
|
+
puts "finished in #{Time.now - start_time} seconds."
|
40
44
|
end
|
41
45
|
fetch_ratings
|
42
46
|
fetch_feedback
|
43
47
|
end
|
44
48
|
|
45
49
|
def fetch_ratings
|
46
|
-
|
50
|
+
start_time = Time.now
|
47
51
|
print "Fetching ratings for all submissions from Papercall API..."
|
48
|
-
|
52
|
+
|
53
|
+
Parallel.each(analysis, in_threads: 8) do |submission|
|
49
54
|
unless submission['ratings']
|
50
55
|
ratings_url = "#{SUBMISSIONS_URL}/#{submission['id']}/ratings"
|
51
56
|
submission['ratings'] = papercall(ratings_url)
|
52
57
|
end
|
58
|
+
submission['ratings'] = [] unless submission['ratings']
|
53
59
|
end
|
54
|
-
puts "finished in #{Time.now -
|
60
|
+
puts "finished in #{Time.now - start_time} seconds."
|
55
61
|
end
|
56
62
|
|
57
63
|
def fetch_feedback
|
58
64
|
startTime = Time.now
|
59
65
|
print "Fetching feedback for all submissions from Papercall API..."
|
60
|
-
|
66
|
+
Parallel.each(analysis, in_threads: 8) do |submission|
|
61
67
|
unless submission['feedback']
|
62
68
|
feedback_url = "#{SUBMISSIONS_URL}/#{submission['id']}/feedback"
|
63
69
|
submission['feedback'] = papercall(feedback_url)
|
64
70
|
end
|
71
|
+
submission['feedback'] = [] unless submission['feedback']
|
65
72
|
end
|
66
73
|
puts "finished in #{Time.now - startTime} seconds."
|
67
74
|
end
|
data/lib/papercall/version.rb
CHANGED
data/papercall.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papercall
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jørn Ølmheim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -176,6 +176,20 @@ dependencies:
|
|
176
176
|
- - "~>"
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: 0.9.1
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: parallel
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 1.12.1
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 1.12.1
|
179
193
|
description: Small client library for the PaperCall API. With some analytics for the
|
180
194
|
submissions.
|
181
195
|
email:
|
@@ -225,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
239
|
version: '0'
|
226
240
|
requirements: []
|
227
241
|
rubyforge_project:
|
228
|
-
rubygems_version: 2.6.
|
242
|
+
rubygems_version: 2.6.14
|
229
243
|
signing_key:
|
230
244
|
specification_version: 4
|
231
245
|
summary: Small client library for the PaperCall API
|