active_genie 0.30.8 → 0.30.9
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/VERSION +1 -1
- data/lib/active_genie/entities/player.rb +9 -4
- data/lib/active_genie/entities/players.rb +4 -2
- data/lib/active_genie/lister/juries.rb +14 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e09ec06a4f08b618dcbdb8d613e0816e814107b318890417ac08f71d5226fe6e
|
|
4
|
+
data.tar.gz: 15516024a45eb0c23903376131dfcdd7acb20b1d9d0bc745aa8c617d0416c276
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dff1e31c1ba15706d55b198f59f28d27114095b1290877b388055d70f6956c92b5a292d3408312a6fd89fcb902b2b5d958de9eb53581d3a95b6a25eb3dd1efee
|
|
7
|
+
data.tar.gz: e9245607eeb154fd1c04d1abe7ea3c3ea7a62463bc6298de2fd799c88dece1a87d2c5f3082c1c4760ba40003325ea87147f562899769177f3e7e04dd9f7d38b0
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.30.
|
|
1
|
+
0.30.9
|
|
@@ -7,16 +7,21 @@ module ActiveGenie
|
|
|
7
7
|
module Entities
|
|
8
8
|
class Player
|
|
9
9
|
def initialize(params)
|
|
10
|
-
@params = params.is_a?(String)
|
|
11
|
-
|
|
10
|
+
@params = if params.is_a?(String)
|
|
11
|
+
{ content: params }
|
|
12
|
+
elsif params.respond_to?(:transform_keys)
|
|
13
|
+
params.transform_keys(&:to_sym)
|
|
14
|
+
else
|
|
15
|
+
params.dup
|
|
16
|
+
end
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
def content
|
|
15
|
-
@content ||= @params[:content]
|
|
20
|
+
@content ||= @params[:content] || @params
|
|
16
21
|
end
|
|
17
22
|
|
|
18
23
|
def name
|
|
19
|
-
@name ||= @params[:name] || content[0..10]
|
|
24
|
+
@name ||= @params[:name] || (content.is_a?(Hash) ? (content[:name] || content.to_s[0..10]) : content[0..10])
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
def id
|
|
@@ -37,12 +37,14 @@ module ActiveGenie
|
|
|
37
37
|
all_scores.sum.to_f / all_scores.size
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
# Since eligible is sorted in descending order (best player first),
|
|
41
|
+
# lower_tier represents the worst performing players at the end of the array.
|
|
40
42
|
def calc_higher_tier
|
|
41
|
-
eligible[(tier_size * -1)
|
|
43
|
+
eligible[(tier_size * -2)...(tier_size * -1)]
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
def calc_lower_tier
|
|
45
|
-
eligible[(tier_size * -
|
|
47
|
+
eligible[(tier_size * -1)..]
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
def eligible
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative '../providers/unified_provider'
|
|
4
4
|
|
|
5
|
+
require 'json'
|
|
6
|
+
|
|
5
7
|
module ActiveGenie
|
|
6
8
|
module Lister
|
|
7
9
|
# The Juries class intelligently suggests appropriate jury roles
|
|
@@ -53,7 +55,7 @@ module ActiveGenie
|
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
},
|
|
56
|
-
required: %w[
|
|
58
|
+
required: %w[why_these_juries juries]
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
|
|
@@ -63,8 +65,18 @@ module ActiveGenie
|
|
|
63
65
|
config:
|
|
64
66
|
)
|
|
65
67
|
|
|
68
|
+
juries = provider_response['juries'] || []
|
|
69
|
+
if juries.is_a?(String)
|
|
70
|
+
begin
|
|
71
|
+
juries = JSON.parse(juries)
|
|
72
|
+
rescue JSON::ParserError
|
|
73
|
+
juries = juries.split(',').map(&:strip)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
juries = Array(juries).map(&:to_s).map(&:strip).reject(&:empty?)
|
|
77
|
+
|
|
66
78
|
ActiveGenie::Result.new(
|
|
67
|
-
data:
|
|
79
|
+
data: juries,
|
|
68
80
|
reasoning: provider_response['why_these_juries'],
|
|
69
81
|
metadata: provider_response
|
|
70
82
|
)
|