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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02e46bc41ee34451323202588e8018cca0f7497529f9c7f6ce64c0e00e009f7e
4
- data.tar.gz: 4a78b8402fee546b0fd6fef3352cd85d476399167edf051798ec71709c46bb7b
3
+ metadata.gz: e09ec06a4f08b618dcbdb8d613e0816e814107b318890417ac08f71d5226fe6e
4
+ data.tar.gz: 15516024a45eb0c23903376131dfcdd7acb20b1d9d0bc745aa8c617d0416c276
5
5
  SHA512:
6
- metadata.gz: 2e606f1827f1b88e67dea196d56173a5dd4c5ff51861a77942faebef38fdd6f252e3077c9ca2bc8585769ab4f873344dea0abebb88d19af1f40493aac9e7374d
7
- data.tar.gz: 4beac5e264438b7c9eb692669ff16940e140251cc8e87b35e61fbef8eb3fdf604acc2966ed021705bca63a9ff90cd63312abe25143b68364a67d92becd113d58
6
+ metadata.gz: dff1e31c1ba15706d55b198f59f28d27114095b1290877b388055d70f6956c92b5a292d3408312a6fd89fcb902b2b5d958de9eb53581d3a95b6a25eb3dd1efee
7
+ data.tar.gz: e9245607eeb154fd1c04d1abe7ea3c3ea7a62463bc6298de2fd799c88dece1a87d2c5f3082c1c4760ba40003325ea87147f562899769177f3e7e04dd9f7d38b0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.30.8
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) ? { content: params } : params.dup
11
- @params[:content] ||= @params
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 * -2)...(tier_size * -1)]
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[reasoning juries]
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: provider_response['juries'] || [],
79
+ data: juries,
68
80
  reasoning: provider_response['why_these_juries'],
69
81
  metadata: provider_response
70
82
  )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_genie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.8
4
+ version: 0.30.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Radamés Roriz