public_uid 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 789c1469292aaeac0682a128fa3edcb9a4e2adcb792c94acef5c41fa20a56160
4
- data.tar.gz: 9fe04f567ebd19658ea950585fadccf98a42f0414a2d35451b23d7245f301287
3
+ metadata.gz: b9f535dd58ffefeceb1c162b838cd6bfc152d12d5d0c3036ccf3377d15a5d25f
4
+ data.tar.gz: a65e4856004a370828706d678a55be3a5940ff7f5a288ba8a4e5849060bc4da4
5
5
  SHA512:
6
- metadata.gz: 26d3176ede91d962cf2a3debfcbf967c50e20cff478ea67176d6ea4f60ebbdf2a086c4941b823a49717fbf724d342d725291a92979bcd35bf987db21845d80ce
7
- data.tar.gz: f55e66e2fb2a868e28c6b2bf209a39d13a6cb68635c5af308623e3f0939442b3df9c85e581e5c3667e932e8de056271b0d820907fecb657c2c8ccee654252242
6
+ metadata.gz: f7ae3ce54c0dfaa21d192937c9c6aec75da1aaae789a2261a55dcfabcfc3e740c43b7ae646f2ca601d9139008108e69d6635eef058c35c18b135496d68a79d07
7
+ data.tar.gz: b4e1daa515802166ea148c14a1fa3352f871f7a7725e77e74af37ea9d726e365545ad398e23c4e08a7dce06c38f0741513ed12a7ca4c8fdc53b37cdcfe2cf1ed
data/.travis.yml CHANGED
@@ -3,5 +3,10 @@ rvm:
3
3
  - 2.4.5
4
4
  - 2.5.3
5
5
  - 2.6.5
6
+ - 2.7.0
7
+ - 2.7.3
8
+ - 2.7.5
9
+ - 3.0.0
10
+ - 3.1.0
6
11
  before_install:
7
12
  - gem install bundler
data/README.md CHANGED
@@ -57,7 +57,21 @@ Create database column for public unique ID.
57
57
  class AddPublicUidToUsers < ActiveRecord::Migration
58
58
  def change
59
59
  add_column :users, :public_uid, :string
60
- add_index :users, :public_uid
60
+ add_index :users, :public_uid, unique: true
61
+ end
62
+ end
63
+ ```
64
+
65
+ or if you are creating table
66
+
67
+ ```ruby
68
+ class CreateEntries < ActiveRecord::Migration[7.1]
69
+ def change
70
+ create_table :entries do |t|
71
+ # ...
72
+ t.string :public_uid, index: { unique: true }
73
+ # ...
74
+ end
61
75
  end
62
76
  end
63
77
  ```
@@ -381,3 +395,12 @@ If anyone want to see public_uid v 2.0 to support other data mappers (e.g. mongo
381
395
 
382
396
  Sorry for any inconvenience
383
397
 
398
+ ##### 2022-11-03
399
+
400
+ Version 2.2.0 released
401
+
402
+
403
+ `model.dup` will now not copy the public_uid value (same as `model.id` )
404
+
405
+ more: https://github.com/equivalent/public_uid/pull/21
406
+
@@ -14,6 +14,15 @@ module PublicUid
14
14
  pub_uid.generate self.class.public_uid_generator
15
15
  pub_uid.set
16
16
  end
17
+
18
+ def initialize_dup(*)
19
+ super
20
+ _clear_public_uid_column
21
+ end
22
+
23
+ def _clear_public_uid_column
24
+ self.send("#{self.class.public_uid_column}=", nil)
25
+ end
17
26
  end
18
27
 
19
28
  module ClassMethods
@@ -1,3 +1,3 @@
1
1
  module PublicUid
2
- VERSION = "2.1.1"
2
+ VERSION = "2.2.0"
3
3
  end
@@ -3,7 +3,8 @@ require 'test_helper'
3
3
  TestConf.orm_modules.each do |orm_module|
4
4
  describe orm_module.description do
5
5
  context 'Model with custom public uid column' do
6
- let(:user) { "#{orm_module}::CustomPublicUidColumnModel".constantize.new }
6
+ let(:model_class) { "#{orm_module}::CustomPublicUidColumnModel".constantize }
7
+ let(:user) { model_class.new }
7
8
 
8
9
  describe '#custom_uid' do
9
10
  subject{ user.custom_uid }
@@ -31,6 +32,26 @@ TestConf.orm_modules.each do |orm_module|
31
32
  it{ expect(subject.length).must_equal(8) }
32
33
  end
33
34
  end
35
+
36
+ describe '#dup' do
37
+ let(:user) { model_class.new(:custom_uid => 'abcdefg') }
38
+
39
+ it do
40
+ dup_user = user.dup
41
+ expect(user.custom_uid).must_equal('abcdefg')
42
+ expect(dup_user.custom_uid).must_equal(nil)
43
+ end
44
+ end
45
+
46
+ describe '#clone' do
47
+ let(:user) { model_class.new(:custom_uid => 'abcdefg') }
48
+
49
+ it do
50
+ clone_user = user.clone
51
+ expect(user.custom_uid).must_equal('abcdefg')
52
+ expect(clone_user.custom_uid).must_equal('abcdefg')
53
+ end
54
+ end
34
55
  end
35
56
  end
36
57
  end
@@ -3,7 +3,8 @@ require 'test_helper'
3
3
  TestConf.orm_modules.each do |orm_module|
4
4
  describe orm_module.description do
5
5
  context 'Model with default generator' do
6
- let(:user) { "#{orm_module}::ModelWithGeneratorDefaults".constantize.new }
6
+ let(:model_class) { "#{orm_module}::ModelWithGeneratorDefaults".constantize }
7
+ let(:user) { model_class.new }
7
8
 
8
9
  describe '#public_uid' do
9
10
  subject{ user.public_uid }
@@ -31,6 +32,26 @@ TestConf.orm_modules.each do |orm_module|
31
32
  it{ expect(subject.length).must_equal(8) }
32
33
  end
33
34
  end
35
+
36
+ describe '#dup' do
37
+ let(:user) { model_class.new(:public_uid => 'abcdefg') }
38
+
39
+ it do
40
+ dup_user = user.dup
41
+ expect(user.public_uid).must_equal('abcdefg')
42
+ expect(dup_user.public_uid).must_equal(nil)
43
+ end
44
+ end
45
+
46
+ describe '#clone' do
47
+ let(:user) { model_class.new(:public_uid => 'abcdefg') }
48
+
49
+ it do
50
+ clone_user = user.clone
51
+ expect(user.public_uid).must_equal('abcdefg')
52
+ expect(clone_user.public_uid).must_equal('abcdefg')
53
+ end
54
+ end
34
55
  end
35
56
  end
36
57
  end
@@ -44,6 +44,26 @@ TestConf.orm_modules.each do |orm_module|
44
44
  end
45
45
  end
46
46
  end
47
+
48
+ describe '#dup' do
49
+ let(:user) { model_class.new(:public_uid => 'abcdefg') }
50
+
51
+ it do
52
+ dup_user = user.dup
53
+ expect(user.public_uid).must_equal('abcdefg')
54
+ expect(dup_user.public_uid).must_equal(nil)
55
+ end
56
+ end
57
+
58
+ describe '#clone' do
59
+ let(:user) { model_class.new(:public_uid => 'abcdefg') }
60
+
61
+ it do
62
+ clone_user = user.clone
63
+ expect(user.public_uid).must_equal('abcdefg')
64
+ expect(clone_user.public_uid).must_equal('abcdefg')
65
+ end
66
+ end
47
67
  end
48
68
  end
49
69
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: public_uid
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Valent
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-10 00:00:00.000000000 Z
11
+ date: 2022-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -165,7 +165,7 @@ homepage: https://github.com/equivalent/public_uid
165
165
  licenses:
166
166
  - MIT
167
167
  metadata: {}
168
- post_install_message:
168
+ post_install_message:
169
169
  rdoc_options: []
170
170
  require_paths:
171
171
  - lib
@@ -180,8 +180,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  requirements: []
183
- rubygems_version: 3.0.3
184
- signing_key:
183
+ rubygems_version: 3.3.7
184
+ signing_key:
185
185
  specification_version: 4
186
186
  summary: Automatic generates public UID column
187
187
  test_files: