prefixed_ids 1.6.1 → 1.7.1
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/README.md +20 -0
- data/lib/prefixed_ids/prefix_id.rb +2 -0
- data/lib/prefixed_ids/version.rb +1 -1
- data/lib/prefixed_ids.rb +16 -1
- metadata +3 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a72c0361e99045f5e380aafa8e671be149ce14bdfb1bc83fb8520f72f4d63ac
|
4
|
+
data.tar.gz: fe98952521f2b62e4e1bbce4d66fe8a1c6d2074ce61e07cdbfaec2abfd07ac81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9386a5f418e0c547540e4589fde5633efe4aa61518f472d33f2e812de2140efe4d4cff0474153722e0dae4e6b5c6923a382a9883787ccc9fa5383573c672fd69
|
7
|
+
data.tar.gz: 011ab4e58529325474cbbb6b2f09d0c17daa6118b4ecb2866dad4b10997e1b64234f33e9d306bbec97e150c209617d00ef5a041b9c46f96440a35327082ab0e0
|
data/README.md
CHANGED
@@ -104,6 +104,26 @@ PrefixedIds.find("acct_2iAnOP0xGDYk6dpe")
|
|
104
104
|
#=> #<Account>
|
105
105
|
```
|
106
106
|
|
107
|
+
### Exists
|
108
|
+
|
109
|
+
You can check if a record exists by its prefixed ID:
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
User.exists?("user_5vJjbzXq9KrLEMm3")
|
113
|
+
#=> true
|
114
|
+
```
|
115
|
+
|
116
|
+
If given anything other than a prefixed ID, or `override_exists` is set to false, it will fall back to its original `exists?` method.
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
class User < ApplicationRecord
|
120
|
+
has_prefix_id :user, override_exists: false
|
121
|
+
end
|
122
|
+
|
123
|
+
User.exists?("user_5vJjbzXq9KrLEMm3")
|
124
|
+
#=> false
|
125
|
+
```
|
126
|
+
|
107
127
|
### Customizing Prefix IDs
|
108
128
|
|
109
129
|
You can customize the prefix, length, and attribute name for PrefixedIds.
|
data/lib/prefixed_ids/version.rb
CHANGED
data/lib/prefixed_ids.rb
CHANGED
@@ -38,10 +38,11 @@ module PrefixedIds
|
|
38
38
|
end
|
39
39
|
|
40
40
|
class_methods do
|
41
|
-
def has_prefix_id(prefix, override_find: true, override_param: true, fallback: true, **options)
|
41
|
+
def has_prefix_id(prefix, override_find: true, override_param: true, override_exists: true, fallback: true, **options)
|
42
42
|
include Attribute
|
43
43
|
include Finder if override_find
|
44
44
|
include ToParam if override_param
|
45
|
+
include Exists if override_exists
|
45
46
|
self._prefix_id = PrefixId.new(self, prefix, **options)
|
46
47
|
self._prefix_id_fallback = fallback
|
47
48
|
|
@@ -123,4 +124,18 @@ module PrefixedIds
|
|
123
124
|
_prefix_id.encode(id)
|
124
125
|
end
|
125
126
|
end
|
127
|
+
|
128
|
+
module Exists
|
129
|
+
extend ActiveSupport::Concern
|
130
|
+
|
131
|
+
class_methods do
|
132
|
+
def exists?(id)
|
133
|
+
if _prefix_id.present? && id.is_a?(String)
|
134
|
+
super(_prefix_id.decode(id))
|
135
|
+
else
|
136
|
+
super
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
126
141
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prefixed_ids
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Oliver
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,34 +44,6 @@ dependencies:
|
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 2.0.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: standard
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '0'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: appraisal
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
47
|
description: Prefixed IDs generates IDs with friendly prefixes for your models
|
76
48
|
email:
|
77
49
|
- excid3@gmail.com
|
@@ -108,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
80
|
- !ruby/object:Gem::Version
|
109
81
|
version: '0'
|
110
82
|
requirements: []
|
111
|
-
rubygems_version: 3.
|
83
|
+
rubygems_version: 3.5.13
|
112
84
|
signing_key:
|
113
85
|
specification_version: 4
|
114
86
|
summary: Prefixed IDs generates IDs with friendly prefixes for your models
|