cool_id 0.2.3 → 0.2.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 +8 -1
- data/lib/cool_id/version.rb +1 -1
- data/lib/cool_id.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 46c7659051c9dc4f86b95992ff6e00a493ff9a7bdcf414ec1e3aec3a2c32c5a6
|
|
4
|
+
data.tar.gz: d20ec27d2c057769a842f5a5cbf064fbe1b8ac21c3421ed84354b2357a35c725
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a3f62a5b8385de8e2634711d4f8193ce3f3de9cd10b3b66b59db4663e0c76d781da1f46536ba4abd8196954c4c6e209091420021eebe2dd80598f71d95204348
|
|
7
|
+
data.tar.gz: f44f681360f02e533b44e4c815afcceecb25e9cbb2bc22dda2f81904f91d94824478cf7cc3ce11760d2123b444953d0fc6056f10eaf3b9c0f30da4e3079c14c8
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.2.4] - 2025-12-18
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- raise an error if a prefix is registered more than once
|
|
10
|
+
|
|
5
11
|
## [0.2.3] - 2025-05-29
|
|
6
12
|
|
|
7
13
|
### Fixed
|
|
@@ -32,7 +38,8 @@
|
|
|
32
38
|
|
|
33
39
|
- Initial release
|
|
34
40
|
|
|
35
|
-
[Unreleased]: https://github.com/schpet/cool_id/compare/v0.2.
|
|
41
|
+
[Unreleased]: https://github.com/schpet/cool_id/compare/v0.2.4...HEAD
|
|
42
|
+
[0.2.4]: https://github.com/schpet/cool_id/compare/v0.2.3...v0.2.4
|
|
36
43
|
[0.2.3]: https://github.com/schpet/cool_id/compare/v0.2.2...v0.2.3
|
|
37
44
|
[0.2.2]: https://github.com/schpet/cool_id/compare/v0.2.1...v0.2.2
|
|
38
45
|
[0.2.1]: https://github.com/schpet/cool_id/compare/v0.2.0...v0.2.1
|
data/lib/cool_id/version.rb
CHANGED
data/lib/cool_id.rb
CHANGED
|
@@ -12,6 +12,9 @@ module CoolId
|
|
|
12
12
|
# Error raised when the maximum number of retries is exceeded while generating a unique ID.
|
|
13
13
|
class MaxRetriesExceededError < StandardError; end
|
|
14
14
|
|
|
15
|
+
# Error raised when a prefix is already registered to another model.
|
|
16
|
+
class DuplicatePrefixError < StandardError; end
|
|
17
|
+
|
|
15
18
|
# Default separator used in generated IDs.
|
|
16
19
|
DEFAULT_SEPARATOR = "_"
|
|
17
20
|
|
|
@@ -114,7 +117,12 @@ module CoolId
|
|
|
114
117
|
# @param prefix [String] The prefix to register.
|
|
115
118
|
# @param model_class [Class] The ActiveRecord model class to associate with the prefix.
|
|
116
119
|
# @return [void]
|
|
120
|
+
# @raise [DuplicatePrefixError] If the prefix is already registered to a different model.
|
|
117
121
|
def register(prefix, model_class)
|
|
122
|
+
existing = @prefix_map[prefix]
|
|
123
|
+
if existing && existing != model_class
|
|
124
|
+
raise DuplicatePrefixError, "Prefix '#{prefix}' is already registered to #{existing.name}"
|
|
125
|
+
end
|
|
118
126
|
@prefix_map[prefix] = model_class
|
|
119
127
|
end
|
|
120
128
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cool_id
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Schilling
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|