heavy_keeper 0.1.5 → 0.1.6

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: 2b659791c1f7e376b5756adc0943d8c017ab2071065d7458370ffa7150ff5054
4
- data.tar.gz: 19a989e669b8304d6e76fa1bdb9933f61f7658910931e6e3f64825e650fcc30b
3
+ metadata.gz: c1058a07232d18bd71b757bf4c36b6cda0d3ce82148ad2d62f2616dbf5751232
4
+ data.tar.gz: 467dab0871cde82994a8ddc8ad120bca695e298258979af512f340bb15719be2
5
5
  SHA512:
6
- metadata.gz: c673d46a38adfb562a7eeac7e4a46b3d8ea6ea65a53229f27119d8be6ea430656ceacfff75b3f1a668dab3cfee1e73a772dc807a64ce59effd1c777b8d234375
7
- data.tar.gz: 75053f5bf704153a91d9b13e544e0ec873ede5da88293bc7e64d99def05a767eb7910a16621614f49dd445903ae8bc2367da86bb4c0bb07b57202456e720baad
6
+ metadata.gz: f4f71ee0724e8a4dc643b06f98829a07954f73bf2a32ca4e09b4a59c3ac3d406ecb9e1c77ac49cccbcbbeb272fc50a2d6724ad2f81480cd450f7fd3e8f113356
7
+ data.tar.gz: 2791893982e667b33077a2313edd2bdbd8009a27a897b5a603bc1ed9bc70c8a99f516956b6295570e572aafb3203f658307c73dbfaba9c178e60d287edc1e895
data/.rspec CHANGED
@@ -1,3 +1,4 @@
1
- --format documentation
1
+ --format progress
2
+ --warnings
2
3
  --color
3
4
  --require spec_helper
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.1.6] - 2025-02-04
2
+
3
+ - Move `Validations::Message` to inside HeavyKeeper namespace to avoid
4
+ conflict
5
+
1
6
  ## [0.1.5] - 2024-06-13
2
7
 
3
8
  - Support latest version of xx-hash
data/Gemfile.redis.4 CHANGED
@@ -11,7 +11,7 @@ gem 'rake', '~> 13.0'
11
11
  gem 'redis', '~> 4.0'
12
12
 
13
13
  group :test do
14
- gem 'mock_redis'
14
+ gem 'mock_redis', '< 0.47.0'
15
15
  gem 'rspec'
16
16
  gem 'pry-byebug'
17
17
  end
@@ -3,7 +3,7 @@
3
3
  require 'dry-schema'
4
4
  require 'securerandom'
5
5
  require 'xxhash'
6
- require_relative '../validations/message'
6
+ require_relative 'validations/message'
7
7
 
8
8
  module HeavyKeeper
9
9
  class TopK # rubocop:disable Metrics/ClassLength
@@ -217,7 +217,7 @@ module HeavyKeeper
217
217
  result = Validator.call(options)
218
218
 
219
219
  if result.failure?
220
- error = ::Validations::Message.new.build(result.errors.to_h).join('. ')
220
+ error = Validations::Message.new.build(result.errors.to_h).join('. ')
221
221
  raise HeavyKeeper::Error, error
222
222
  end
223
223
 
@@ -0,0 +1,37 @@
1
+ module HeavyKeeper
2
+ module Validations
3
+ class Message
4
+ CLASSIFY_SEPARATOR = '_'.freeze
5
+ TITLEIZE_SEPARATOR = ' '.freeze
6
+
7
+ # @errors [Hash | Array] output of dry-validation
8
+ # after validating params
9
+ # @parent [Nil | String] key name of a field that has `errors`
10
+ # after validating params
11
+ # Output: array of string that can be used to feed into
12
+ # Errors::InvalidParamsError
13
+ def build(errors, parent = nil)
14
+ case errors
15
+ when Hash
16
+ errors.flat_map do |key, value|
17
+ child = [parent, key].compact.join(' ')
18
+ build(value, child)
19
+ end
20
+ when Array
21
+ errors.flat_map do |error|
22
+ "#{titleize(parent.to_s)} #{build(error)}"
23
+ end
24
+ else
25
+ errors
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def titleize(string)
32
+ # NOTE: this is not a robust implementation of titleize
33
+ string.split(CLASSIFY_SEPARATOR).map(&:capitalize).join(TITLEIZE_SEPARATOR)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HeavyKeeper
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heavy_keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hieu Nguyen
8
8
  - Kenneth Teh
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2024-06-13 00:00:00.000000000 Z
11
+ date: 2025-02-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: dry-configurable
@@ -67,8 +66,6 @@ dependencies:
67
66
  - - ">="
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0'
70
- description:
71
- email:
72
69
  executables: []
73
70
  extensions: []
74
71
  extra_rdoc_files: []
@@ -87,8 +84,8 @@ files:
87
84
  - lib/heavy_keeper/bucket.rb
88
85
  - lib/heavy_keeper/min_heap.rb
89
86
  - lib/heavy_keeper/top_k.rb
87
+ - lib/heavy_keeper/validations/message.rb
90
88
  - lib/heavy_keeper/version.rb
91
- - lib/validations/message.rb
92
89
  homepage: https://github.com/Kaligo/heavy_keeper
93
90
  licenses: []
94
91
  metadata:
@@ -96,7 +93,6 @@ metadata:
96
93
  source_code_uri: https://github.com/Kaligo/heavy_keeper
97
94
  changelog_uri: https://github.com/Kaligo/heavy_keeper/blob/master/CHANGELOG.md
98
95
  rubygems_mfa_required: 'true'
99
- post_install_message:
100
96
  rdoc_options: []
101
97
  require_paths:
102
98
  - lib
@@ -111,8 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
107
  - !ruby/object:Gem::Version
112
108
  version: '0'
113
109
  requirements: []
114
- rubygems_version: 3.0.3.1
115
- signing_key:
110
+ rubygems_version: 3.6.2
116
111
  specification_version: 4
117
112
  summary: Gem which implements HeavyKeeper algorithm
118
113
  test_files: []
@@ -1,35 +0,0 @@
1
- module Validations
2
- class Message
3
- CLASSIFY_SEPARATOR = '_'.freeze
4
- TITLEIZE_SEPARATOR = ' '.freeze
5
-
6
- # @errors [Hash | Array] output of dry-validation
7
- # after validating params
8
- # @parent [Nil | String] key name of a field that has `errors`
9
- # after validating params
10
- # Output: array of string that can be used to feed into
11
- # Errors::InvalidParamsError
12
- def build(errors, parent = nil)
13
- case errors
14
- when Hash
15
- errors.flat_map do |key, value|
16
- child = [parent, key].compact.join(' ')
17
- build(value, child)
18
- end
19
- when Array
20
- errors.flat_map do |error|
21
- "#{titleize(parent.to_s)} #{build(error)}"
22
- end
23
- else
24
- errors
25
- end
26
- end
27
-
28
- private
29
-
30
- def titleize(string)
31
- # NOTE: this is not a robust implementation of titleize
32
- string.split(CLASSIFY_SEPARATOR).map(&:capitalize).join(TITLEIZE_SEPARATOR)
33
- end
34
- end
35
- end