has_identifier 0.0.1 → 0.0.2

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: 724b9aca6a75d8d1d64538c71483c22fed866d48feceba9ebbfa5fe4f25c9f0c
4
- data.tar.gz: b0372f7b0f89122dc59051c3dca5c0e66b5f70d59569591e9f88b3e9d3e8788a
3
+ metadata.gz: 50a16ce9152cd66f625c574b8edce82f7db937b973dc04dfb5cbb4f45cddcb70
4
+ data.tar.gz: c1479a5bd3bbb9f1ab8166e3eeafde759640451b5636ccc5a6e587d072b64828
5
5
  SHA512:
6
- metadata.gz: b19e4a76f5df5b205d7be7eb21a14b41a731d5f74e0d2c1e2001dd586958d46c932eb7f7877f0d4bb43fe0012bed3c95a2828bc6f3788705b3b32a8b2cbac5ec
7
- data.tar.gz: ab7c317060841193f656df92038b29f15a239490c7c5b7274ab0c3d1f93af02b212814d249d4e2f75f69181fe3c662199c261845afcc1fe54ddd2472a85e6c93
6
+ metadata.gz: ba5ec8e7ed2c62a39c00c28e6fa474c8ff50852f2fdc998356428851d4559c3f0253e70f10a5ceb386f96c1b52773b36df7d206223c6308d66cca60ef163d694
7
+ data.tar.gz: 1ce9014c2cb40a6d9866fa64d6dddf02ffcda5a80abcb324344733cfc118448ea656d2777eb1c7f95c68404282e096b2aa0caba2b08e5c24c51b4c9db859cc0e
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "has_identifier"
7
- spec.version = "0.0.1"
7
+ spec.version = "0.0.2"
8
8
  spec.authors = ["Tim Kretschmer"]
9
9
  spec.email = ["tim@krtschmr.de"]
10
10
  spec.description = %q{extend to base58 readable short uuid-style ids}
@@ -3,14 +3,30 @@ module HasIdentifier
3
3
 
4
4
  included do
5
5
  class_attribute :identifier_prefix
6
+ after_initialize :generate_identifier
7
+ validates :identifier, presence: true, uniqueness: { allow_blank: false,case_sensitive: false}, on: :create
8
+ end
9
+
10
+ ALPHABET = [*?1..?9, *?A..?H, *?J..?N, *?P..?Z]
6
11
 
7
- validates(:identifier, presence: true)
12
+ def gen_id_char(n)
13
+ SecureRandom.send(:choose, ALPHABET, n)
14
+ end
8
15
 
9
- after_initialize{
10
- def r(i); SecureRandom.send(:choose, [*?1..?9, *?A..?H, *?J..?N, *?P..?Z], i); end
11
- self.identifier ||= "#{identifier_prefix}#{r(5)}-#{r(5)}-#{r(6)}"
12
- }
16
+ def generate_identifier
17
+ self.identifier ||= "#{identifier_prefix}#{gen_id_char(5)}-#{gen_id_char(5)}-#{gen_id_char(6)}"
13
18
  end
19
+
20
+ # included do
21
+ # class_attribute :identifier_prefix
22
+ #
23
+ # validates(:identifier, presence: true)
24
+ #
25
+ # after_initialize{
26
+ # def r(i); SecureRandom.send(:choose, [*?1..?9, *?A..?H, *?J..?N, *?P..?Z], i); end
27
+ # self.identifier ||= "#{identifier_prefix}#{r(5)}-#{r(5)}-#{r(6)}"
28
+ # }
29
+ # end
14
30
  end
15
31
 
16
32
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_identifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Kretschmer