weighted_list_rank 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c194a4b55fa9efecf1ad39fd54b8d22c2a9fd6766cb562c265c1f881deb08c4
4
- data.tar.gz: 50dba99dde929b5bd3feed2709877c48d87bc45f6f9fcd745fd96d1b14749d7d
3
+ metadata.gz: 5e3b387809912d1000f8f8ee13704cec1b04d691b783d6bd19a9f9b6e6cf0d6d
4
+ data.tar.gz: caadd577bf061e63c1357943da439e06d6c1c5e441bb84ddbff250fb49a45020
5
5
  SHA512:
6
- metadata.gz: fafab0c49212017e8730cec2b78101e6adea7a85eedc938a0250d76643af7e4dea7fb6d1c49c8ed035675774bc4bf18f2e94eca46546ff8627a02b10d43fb1a7
7
- data.tar.gz: 15e032d6eb71f6b65a825847e6850a8d4e7b248853d4a4480ab8f4ef7c276998dfd1ac0a3edea8f0a0fd19f788c571d84acac1e3d4fa1e8a1089aadd2e9cbab1
6
+ metadata.gz: eb8c04911951b50c39b7f45583b1932274377106357fae605185bad10f8e37fb4e5c86047698e5e1752778311a5ea3403ce82fe494d44035ac889625b0703056
7
+ data.tar.gz: 955ad9589e4418ca509065a7dc92b23af4c3c962ee8523ab89585bda58f04a9cedbedc11124523c69b385ba3f146d7db6856be6f86dc66143c251055b69bc545
data/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
- ## [Unreleased]
1
+ ## [0.5.3] - 2024-08-22
2
+ - Fixed an issue in the `Exponential` strategy where items with positions higher than the total number of items in a list could cause errors. Now, such items are treated as if they were in the last position, and a warning is logged.
3
+ - Added a new test case to verify the handling of items with positions exceeding the list size.
4
+ - Updated all dependencies to their latest versions.
2
5
 
3
6
  ## [0.5.2] - 2024-08-21
4
7
  - Fixed an issue in the `Exponential` strategy where `score_penalty` was not being applied to unranked items. Now, `score_penalty` is correctly applied to both ranked and unranked items, ensuring consistent scoring behavior.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- weighted_list_rank (0.4.2)
4
+ weighted_list_rank (0.5.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,15 +12,14 @@ GEM
12
12
  lint_roller (1.1.0)
13
13
  minitest (5.25.1)
14
14
  parallel (1.26.3)
15
- parser (3.3.4.2)
15
+ parser (3.3.5.0)
16
16
  ast (~> 2.4.1)
17
17
  racc
18
18
  racc (1.8.1)
19
19
  rainbow (3.1.1)
20
20
  rake (13.2.1)
21
21
  regexp_parser (2.9.2)
22
- rexml (3.3.5)
23
- strscan
22
+ rexml (3.3.8)
24
23
  rubocop (1.65.1)
25
24
  json (~> 2.3)
26
25
  language_server-protocol (>= 3.17.0)
@@ -32,9 +31,9 @@ GEM
32
31
  rubocop-ast (>= 1.31.1, < 2.0)
33
32
  ruby-progressbar (~> 1.7)
34
33
  unicode-display_width (>= 2.4.0, < 3.0)
35
- rubocop-ast (1.32.1)
34
+ rubocop-ast (1.32.3)
36
35
  parser (>= 3.3.1.0)
37
- rubocop-minitest (0.35.1)
36
+ rubocop-minitest (0.36.0)
38
37
  rubocop (>= 1.61, < 2.0)
39
38
  rubocop-ast (>= 1.31.1, < 2.0)
40
39
  rubocop-performance (1.21.1)
@@ -43,7 +42,7 @@ GEM
43
42
  rubocop-rake (0.6.0)
44
43
  rubocop (~> 1.0)
45
44
  ruby-progressbar (1.13.0)
46
- standard (1.40.0)
45
+ standard (1.40.1)
47
46
  language_server-protocol (~> 3.17.0.2)
48
47
  lint_roller (~> 1.0)
49
48
  rubocop (~> 1.65.0)
@@ -55,8 +54,7 @@ GEM
55
54
  standard-performance (1.4.0)
56
55
  lint_roller (~> 1.1)
57
56
  rubocop-performance (~> 1.21.0)
58
- strscan (3.1.0)
59
- unicode-display_width (2.5.0)
57
+ unicode-display_width (2.6.0)
60
58
 
61
59
  PLATFORMS
62
60
  x86_64-linux
@@ -67,7 +65,7 @@ DEPENDENCIES
67
65
  rubocop (~> 1.21)
68
66
  rubocop-minitest (~> 0.3)
69
67
  rubocop-rake (~> 0.6)
70
- standard (~> 1.0)
68
+ standard (>= 1.35.1)
71
69
  weighted_list_rank!
72
70
 
73
71
  BUNDLED WITH
@@ -64,8 +64,16 @@ module WeightedListRank
64
64
  score += unranked_bonus
65
65
  end
66
66
  else
67
+ # Check if the item's position is higher than the total number of items
68
+ if item.position > total_items
69
+ puts "Warning: Item position (#{item.position}) is higher than the total number of items (#{total_items}) in the list. Using total items as position."
70
+ item_position = total_items
71
+ else
72
+ item_position = item.position
73
+ end
74
+
67
75
  # Ranked items receive a bonus calculated using the exponential formula
68
- exponential_factor = (total_items + 1 - item.position)**exponent
76
+ exponential_factor = (total_items + 1 - item_position)**exponent
69
77
  total_exponential_factor = (1..total_items).sum { |pos| (total_items + 1 - pos)**exponent }
70
78
 
71
79
  # Allocate a portion of the adjusted bonus pool based on the item's exponential factor
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WeightedListRank
4
- VERSION = "0.5.2"
4
+ VERSION = "0.5.3"
5
5
  end
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
34
34
  # Uncomment to register a new dependency of your gem
35
35
  # spec.add_dependency "example-gem", "~> 1.0"
36
36
  spec.add_development_dependency "rubocop", "~> 1.0"
37
- spec.add_development_dependency "standard", "~> 1.0"
37
+ spec.add_development_dependency "standard", ">= 1.35.1"
38
38
  spec.add_development_dependency "rubocop-minitest", "~> 0.3"
39
39
  spec.add_development_dependency "rubocop-rake", "~> 0.6"
40
40
  # For more information and examples about making a new gem, check out our
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weighted_list_rank
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Sherman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-21 00:00:00.000000000 Z
11
+ date: 2024-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: standard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: 1.35.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: 1.35.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop-minitest
43
43
  requirement: !ruby/object:Gem::Requirement