heavy_keeper 0.1.3 → 0.1.4
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/CHANGELOG.md +4 -0
- data/Gemfile.redis.4 +17 -0
- data/Gemfile.redis.5 +17 -0
- data/lib/heavy_keeper/min_heap.rb +1 -1
- data/lib/heavy_keeper/top_k.rb +4 -0
- data/lib/heavy_keeper/version.rb +1 -1
- metadata +9 -9
- data/Gemfile.lock +0 -103
- data/heavy_keeper.gemspec +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fa845ff130abdbfdb259da169bb28d5bbbe4950ff03a9c82e7d4d3cf161df70
|
4
|
+
data.tar.gz: ed07be9b64ce60c3b02273c33a1c7b74d567a6fc5faf06679b52280f65a3c4fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be4e3c50a389b55371466f65ffa69cec2d14d431b274ed867bf7f503df0a28b03f6872acfa8d6b4eb53d71939ea4c2d7a6225b078e1399891d72b2ed59aac0d8
|
7
|
+
data.tar.gz: 510d531f4dcc4d0f350e7a01eb05f7c36c2f24b0ab252de3c0463b1238496cf9e40a54bd2ce4d744c2c9358365560c15bdc7e7ee65601b7f5d3d56a3722ef7a6
|
data/CHANGELOG.md
CHANGED
data/Gemfile.redis.4
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in heavy_keeper.gemspec
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
gem 'rubocop', require: false
|
9
|
+
|
10
|
+
gem 'rake', '~> 13.0'
|
11
|
+
gem 'redis', '~> 4.0'
|
12
|
+
|
13
|
+
group :test do
|
14
|
+
gem 'mock_redis'
|
15
|
+
gem 'rspec'
|
16
|
+
gem 'pry-byebug'
|
17
|
+
end
|
data/Gemfile.redis.5
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in heavy_keeper.gemspec
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
gem 'rubocop', require: false
|
9
|
+
|
10
|
+
gem 'rake', '~> 13.0'
|
11
|
+
gem 'redis', '~> 5.0'
|
12
|
+
|
13
|
+
group :test do
|
14
|
+
gem 'mock_redis'
|
15
|
+
gem 'rspec'
|
16
|
+
gem 'pry-byebug'
|
17
|
+
end
|
data/lib/heavy_keeper/top_k.rb
CHANGED
@@ -38,6 +38,10 @@ module HeavyKeeper
|
|
38
38
|
# @return OK on success, otherwise raise error
|
39
39
|
def reserve(key, options)
|
40
40
|
options = validate(options)
|
41
|
+
# We need to use Decimal when validating to accept integer
|
42
|
+
# number. However, we need to convert to float when save to Redis
|
43
|
+
# because redis-rb 5 don't support Decimal type
|
44
|
+
options[:decay] = options[:decay].to_f
|
41
45
|
|
42
46
|
storage.mapped_hmset(metadata_key(key), options)
|
43
47
|
end
|
data/lib/heavy_keeper/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heavy_keeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hieu Nguyen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-11-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dry-configurable
|
@@ -43,16 +43,16 @@ dependencies:
|
|
43
43
|
name: redis
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: xxhash
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -77,12 +77,12 @@ files:
|
|
77
77
|
- ".rubocop.yml"
|
78
78
|
- CHANGELOG.md
|
79
79
|
- Gemfile
|
80
|
-
- Gemfile.
|
80
|
+
- Gemfile.redis.4
|
81
|
+
- Gemfile.redis.5
|
81
82
|
- README.md
|
82
83
|
- Rakefile
|
83
84
|
- bin/console
|
84
85
|
- bin/setup
|
85
|
-
- heavy_keeper.gemspec
|
86
86
|
- lib/heavy_keeper.rb
|
87
87
|
- lib/heavy_keeper/bucket.rb
|
88
88
|
- lib/heavy_keeper/min_heap.rb
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '0'
|
113
113
|
requirements: []
|
114
|
-
rubygems_version: 3.
|
114
|
+
rubygems_version: 3.3.7
|
115
115
|
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Gem which implements HeavyKeeper algorithm
|
data/Gemfile.lock
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
heavy_keeper (0.1.3)
|
5
|
-
dry-configurable (>= 0.13.0)
|
6
|
-
dry-schema (~> 1)
|
7
|
-
redis (~> 4)
|
8
|
-
xxhash (~> 0.4.0)
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: https://rubygems.org/
|
12
|
-
specs:
|
13
|
-
ast (2.4.2)
|
14
|
-
byebug (11.1.3)
|
15
|
-
coderay (1.1.3)
|
16
|
-
concurrent-ruby (1.1.10)
|
17
|
-
diff-lcs (1.5.0)
|
18
|
-
dry-configurable (0.15.0)
|
19
|
-
concurrent-ruby (~> 1.0)
|
20
|
-
dry-core (~> 0.6)
|
21
|
-
dry-container (0.9.0)
|
22
|
-
concurrent-ruby (~> 1.0)
|
23
|
-
dry-configurable (~> 0.13, >= 0.13.0)
|
24
|
-
dry-core (0.7.1)
|
25
|
-
concurrent-ruby (~> 1.0)
|
26
|
-
dry-inflector (0.2.1)
|
27
|
-
dry-initializer (3.1.1)
|
28
|
-
dry-logic (1.2.0)
|
29
|
-
concurrent-ruby (~> 1.0)
|
30
|
-
dry-core (~> 0.5, >= 0.5)
|
31
|
-
dry-schema (1.9.1)
|
32
|
-
concurrent-ruby (~> 1.0)
|
33
|
-
dry-configurable (~> 0.13, >= 0.13.0)
|
34
|
-
dry-core (~> 0.5, >= 0.5)
|
35
|
-
dry-initializer (~> 3.0)
|
36
|
-
dry-logic (~> 1.0)
|
37
|
-
dry-types (~> 1.5)
|
38
|
-
dry-types (1.5.1)
|
39
|
-
concurrent-ruby (~> 1.0)
|
40
|
-
dry-container (~> 0.3)
|
41
|
-
dry-core (~> 0.5, >= 0.5)
|
42
|
-
dry-inflector (~> 0.1, >= 0.1.2)
|
43
|
-
dry-logic (~> 1.0, >= 1.0.2)
|
44
|
-
method_source (1.0.0)
|
45
|
-
mock_redis (0.31.0)
|
46
|
-
ruby2_keywords
|
47
|
-
parallel (1.22.1)
|
48
|
-
parser (3.1.2.0)
|
49
|
-
ast (~> 2.4.1)
|
50
|
-
pry (0.13.1)
|
51
|
-
coderay (~> 1.1)
|
52
|
-
method_source (~> 1.0)
|
53
|
-
pry-byebug (3.9.0)
|
54
|
-
byebug (~> 11.0)
|
55
|
-
pry (~> 0.13.0)
|
56
|
-
rainbow (3.1.1)
|
57
|
-
rake (13.0.6)
|
58
|
-
redis (4.7.0)
|
59
|
-
regexp_parser (2.4.0)
|
60
|
-
rexml (3.2.5)
|
61
|
-
rspec (3.11.0)
|
62
|
-
rspec-core (~> 3.11.0)
|
63
|
-
rspec-expectations (~> 3.11.0)
|
64
|
-
rspec-mocks (~> 3.11.0)
|
65
|
-
rspec-core (3.11.0)
|
66
|
-
rspec-support (~> 3.11.0)
|
67
|
-
rspec-expectations (3.11.0)
|
68
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
69
|
-
rspec-support (~> 3.11.0)
|
70
|
-
rspec-mocks (3.11.1)
|
71
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
72
|
-
rspec-support (~> 3.11.0)
|
73
|
-
rspec-support (3.11.0)
|
74
|
-
rubocop (1.29.1)
|
75
|
-
parallel (~> 1.10)
|
76
|
-
parser (>= 3.1.0.0)
|
77
|
-
rainbow (>= 2.2.2, < 4.0)
|
78
|
-
regexp_parser (>= 1.8, < 3.0)
|
79
|
-
rexml (>= 3.2.5, < 4.0)
|
80
|
-
rubocop-ast (>= 1.17.0, < 2.0)
|
81
|
-
ruby-progressbar (~> 1.7)
|
82
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
83
|
-
rubocop-ast (1.18.0)
|
84
|
-
parser (>= 3.1.1.0)
|
85
|
-
ruby-progressbar (1.11.0)
|
86
|
-
ruby2_keywords (0.0.5)
|
87
|
-
unicode-display_width (2.1.0)
|
88
|
-
xxhash (0.4.0)
|
89
|
-
|
90
|
-
PLATFORMS
|
91
|
-
x86_64-darwin-19
|
92
|
-
x86_64-linux
|
93
|
-
|
94
|
-
DEPENDENCIES
|
95
|
-
heavy_keeper!
|
96
|
-
mock_redis
|
97
|
-
pry-byebug
|
98
|
-
rake (~> 13.0)
|
99
|
-
rspec
|
100
|
-
rubocop
|
101
|
-
|
102
|
-
BUNDLED WITH
|
103
|
-
2.2.32
|
data/heavy_keeper.gemspec
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'lib/heavy_keeper/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'heavy_keeper'
|
7
|
-
spec.version = HeavyKeeper::VERSION
|
8
|
-
spec.authors = ['Hieu Nguyen', 'Kenneth Teh']
|
9
|
-
|
10
|
-
spec.summary = 'Gem which implements HeavyKeeper algorithm'
|
11
|
-
spec.homepage = 'https://github.com/Kaligo/heavy_keeper'
|
12
|
-
spec.required_ruby_version = '>= 2.7.0'
|
13
|
-
|
14
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
15
|
-
spec.metadata['source_code_uri'] = 'https://github.com/Kaligo/heavy_keeper'
|
16
|
-
spec.metadata['changelog_uri'] = 'https://github.com/Kaligo/heavy_keeper/blob/master/CHANGELOG.md'
|
17
|
-
|
18
|
-
# Specify which files should be added to the gem when it is released.
|
19
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
20
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
21
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
22
|
-
(f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
23
|
-
end
|
24
|
-
end
|
25
|
-
spec.bindir = 'exe'
|
26
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
27
|
-
spec.require_paths = ['lib']
|
28
|
-
|
29
|
-
spec.add_dependency 'dry-configurable', '>= 0.13.0'
|
30
|
-
spec.add_dependency 'dry-schema', '~> 1'
|
31
|
-
spec.add_dependency 'redis', '~> 4'
|
32
|
-
spec.add_dependency 'xxhash', '~> 0.4.0'
|
33
|
-
|
34
|
-
spec.metadata['rubygems_mfa_required'] = 'true'
|
35
|
-
end
|