weathercock 0.1.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69167dba72d21575ef52f1c799423a78ff435b8fa42a8ea60eac368a1dbe680b
4
- data.tar.gz: 586f93c2471f63dc178de81ee96c3d39dd205c41ba69984535d2d14012b04f2c
3
+ metadata.gz: 0d2874d2b19beabee7ca9a2d408ce855a1f30560fc44b1f4b9e2efc77b626688
4
+ data.tar.gz: 1f95984e5dd96a65a07069e0bea20b8f0ad14bcd23770bc8b05b4544a53d12f1
5
5
  SHA512:
6
- metadata.gz: 362d33770a45bbf057ee4907dd978ce032444e134972f841dc903c52f7df2511aa2c5556abfe1d31008b6e10b0841c0b98ab8ae0aabc34564af1cbd7fbce642c
7
- data.tar.gz: d4d6f1434f014a87a0906732960217ba1ebbbe9d8ab3660e70544da151a856696f08fa2b07f938ced057440a6ab5d1677eec21ae4820a3ecac735bb2a5950d2f
6
+ metadata.gz: cb6fb7895358325549f117b807b75889a0a49ca839deadd4347b4d137c156cd7dac3acf4303b3845a5b11f02bcdc402eb95b8d18feb5fe80b7973676c5cb1939
7
+ data.tar.gz: 4d347a60ccb2ff6d823bb1586d9ef683702d72a7973ea9a3825f1a3c5f7eeb72f0e110cca5f14f6bf098a5f9076c6d60b6b91ad1b088d6ab85b115294efeda82
data/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ ## [1.0.0] - 2026-04-15
4
+
5
+ ### Added
6
+
7
+ - `.top` now accepts a required `limit` keyword argument; pass `nil` to retrieve all results
8
+
9
+ ### Fixed
10
+
11
+ - `require "weathercock"` now loads `Weathercock::Scorable` automatically
12
+
13
+ ## [0.1.0] - 2026-04-15
14
+
15
+ Initial release.
@@ -16,11 +16,12 @@ module Weathercock
16
16
  end
17
17
 
18
18
  module ClassMethods
19
- def top(event, decay_factor: nil, **window)
20
- return Weathercock.config.redis.call("ZRANGE", "#{weathercock_base_key(event)}:total", 0, -1, "REV") if window.empty?
19
+ def top(event, limit:, decay_factor: nil, **window)
20
+ stop = limit ? limit - 1 : -1
21
+ return Weathercock.config.redis.call("ZRANGE", "#{weathercock_base_key(event)}:total", 0, stop, "REV") if window.empty?
21
22
 
22
23
  dest = weathercock_union(event, window, decay_factor: decay_factor)
23
- Weathercock.config.redis.call("ZRANGE", dest, 0, -1, "REV")
24
+ Weathercock.config.redis.call("ZRANGE", dest, 0, stop, "REV")
24
25
  end
25
26
 
26
27
  def hit_counts(event, ids:, **window)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Weathercock
4
- VERSION = "0.1.0"
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/weathercock.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "weathercock/version"
4
+ require_relative "weathercock/scorable"
4
5
 
5
6
  module Weathercock
6
7
  class Error < StandardError; end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weathercock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takafumi ONAKA
@@ -45,6 +45,7 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - CHANGELOG.md
48
49
  - LICENSE.txt
49
50
  - README.md
50
51
  - Rakefile