active_genie 0.26.0 → 0.26.5

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: 848de45258263935accfd02ce16d14eb96c6b5a73f42979fe0a74e5b9b746fb4
4
- data.tar.gz: cb1f9eb843559a7040dc20b1442e120325d734b7610a75b57bfde91cba63dc4e
3
+ metadata.gz: ad223ae84ac62d9375af07ba18dca9152296cac5e7c432a6fd07118107c4ab6e
4
+ data.tar.gz: 5faa2d7ad89cf2200296f94892470248a544d86cd37880191777226f121d9cf4
5
5
  SHA512:
6
- metadata.gz: 12f38e95348fae6beab3cc7a74cfdefc132ef9e8308303f2df04a40703d6f86a9fe6f859c958dc8a1d9fca52d41ceb1f380324c5b34d5d13e0bde4a702362830
7
- data.tar.gz: c512e6ae0fb0b47403f9c2fc3be5c55a458320877fe2aae93780af1fab4e95b2fa1553ff60a62ec30653933f77a5c8892e96227ee637e8ab03a30cf0c9ad177d
6
+ metadata.gz: 2a6bd702967d5948e37fed48a9b92d0c2061b4893579e67d526cb3bf9b71b44889b7a5a457d5c78a768f74d6cc650beb17a52c1ce00bf1a5c7d2dc553d88b866
7
+ data.tar.gz: 845fecdb4f036ce4a97b99ea54d0f5600544d6ce0b052da99e4533e4555d774ce09bff1dc037d3752f30aabe69acc5b9362ab77eaf17c62b8ebb5244e02b5df8
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.26.0
1
+ 0.26.5
@@ -41,9 +41,16 @@ module ActiveGenie
41
41
  private
42
42
 
43
43
  def matches
44
+ match_keys = {}
45
+
44
46
  @relegation_tier.each_with_object([]) do |attack_player, matches|
45
47
  BATTLE_PER_PLAYER.times do
46
- matches << [attack_player, next_defense_player].shuffle
48
+ defense_player = next_defense_player
49
+
50
+ next if match_keys["#{attack_player.id}_#{defense_player.id}"]
51
+
52
+ match_keys["#{attack_player.id}_#{defense_player.id}"] = true
53
+ matches << [attack_player, defense_player]
47
54
  end
48
55
  end
49
56
  end
@@ -27,13 +27,7 @@ module ActiveGenie
27
27
  end
28
28
 
29
29
  def elo
30
- @elo = if @params[:elo]
31
- @params[:elo]
32
- elsif @score
33
- generate_elo_by_score
34
- else
35
- BASE_ELO
36
- end
30
+ @elo = @elo || @params[:elo] || generate_elo_by_score
37
31
  end
38
32
 
39
33
  def ffa_win_count
@@ -84,7 +78,7 @@ module ActiveGenie
84
78
  end
85
79
 
86
80
  def ffa_score
87
- (@ffa_win_count * 3) + @ffa_draw_count
81
+ (ffa_win_count * 3) + ffa_draw_count
88
82
  end
89
83
 
90
84
  def sort_value
@@ -127,7 +121,9 @@ module ActiveGenie
127
121
  private
128
122
 
129
123
  def generate_elo_by_score
130
- BASE_ELO + ((@score || 0) - 50)
124
+ return BASE_ELO if @score.nil?
125
+
126
+ BASE_ELO + (@score - 50)
131
127
  end
132
128
  end
133
129
  end
@@ -56,7 +56,7 @@ module ActiveGenie
56
56
  end
57
57
 
58
58
  def to_json(*_args)
59
- to_h.to_json
59
+ @players.map(&:to_h).to_json
60
60
  end
61
61
 
62
62
  def method_missing(...)
@@ -84,7 +84,11 @@ module ActiveGenie
84
84
  def tier_size
85
85
  size = (eligible_size / 3).ceil
86
86
 
87
- size.clamp(10, eligible_size - 10)
87
+ if eligible_size < 10
88
+ (eligible_size / 2).ceil
89
+ else
90
+ size.clamp(10, eligible_size - 10)
91
+ end
88
92
  end
89
93
  end
90
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_genie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.0
4
+ version: 0.26.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Radamés Roriz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-02 00:00:00.000000000 Z
11
+ date: 2025-06-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  The lodash for GenAI, stop reinventing the wheel