uuidable 1.0.2 → 1.0.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/Gemfile.lock +2 -2
- data/lib/uuidable/active_record.rb +3 -2
- data/lib/uuidable/v1_model_migration.rb +19 -0
- data/lib/uuidable/version.rb +1 -1
- data/lib/uuidable.rb +1 -0
- data/uuidable.gemspec +1 -1
- metadata +6 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 48b7b698e07705d713624e8254b93d618ca6e133732256ea2ea727a55929f631
|
|
4
|
+
data.tar.gz: 29fb889f96831b6f7864c85a888c1071355d52f0ae5a4c7fc7b1c4c3558aca53
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f02007dbeaecfb60ff15e82ab7e78f4f7b93bf4ffcae8633d4aa52846ff14f9ed6b5b892716b091127cf0619098b976e8d052853bfb00d95e3b9c75721b6703d
|
|
7
|
+
data.tar.gz: 57f29e300007e22d3fe1aad4c84b657bdf06632b026744400ef8aa443b3f0992cb89bc19669bb77f8b2c51672f67ae753614fd23402b4c1d3ef312906fa0266c
|
data/Gemfile.lock
CHANGED
|
@@ -30,16 +30,17 @@ module Uuidable
|
|
|
30
30
|
columns.select { |c| c.type == :binary && c.limit == 16 && c.name.include?('uuid') }.each do |column|
|
|
31
31
|
attribute column.name.to_sym, MySQLBinUUID::Type.new
|
|
32
32
|
end
|
|
33
|
+
|
|
34
|
+
include V1ModelMigration if columns.any? { |c| c.name.include?(V1MigrationHelpers::OLD_POSTFIX) }
|
|
33
35
|
rescue ::ActiveRecord::ConnectionNotEstablished, Mysql2::Error::ConnectionError, ::ActiveRecord::NoDatabaseError # rubocop:disable Lint/SuppressedException
|
|
34
36
|
end
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
after_initialize do
|
|
38
40
|
self.uuid = Uuidable.generate_uuid if attributes.keys.include?('uuid') && uuid.blank?
|
|
39
|
-
self.uuid__old = uuid if respond_to?(:uuid__old)
|
|
40
41
|
end
|
|
41
42
|
|
|
42
|
-
validates :uuid, presence: true, uniqueness: true, if: :uuid_changed?
|
|
43
|
+
validates :uuid, presence: true, uniqueness: true, if: -> { try :uuid_changed? }
|
|
43
44
|
|
|
44
45
|
if as_param
|
|
45
46
|
define_method :to_param do
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Uuidable
|
|
4
|
+
# Temporary helpers for transition period when migrating to v1
|
|
5
|
+
module V1ModelMigration
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
included do
|
|
9
|
+
before_validation do
|
|
10
|
+
attributes.each_key do |attr_name|
|
|
11
|
+
next unless attr_name.include?(V1MigrationHelpers::OLD_POSTFIX)
|
|
12
|
+
|
|
13
|
+
new_attr_name = attr_name.gsub(V1MigrationHelpers::OLD_POSTFIX, '')
|
|
14
|
+
public_send("#{attr_name}=", attributes[new_attr_name].to_s)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
data/lib/uuidable/version.rb
CHANGED
data/lib/uuidable.rb
CHANGED
data/uuidable.gemspec
CHANGED
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
28
28
|
spec.add_development_dependency 'travis', '~> 1.8', '>= 1.8.2'
|
|
29
29
|
|
|
30
|
-
spec.add_dependency 'activerecord', '>= 4.2', '<
|
|
30
|
+
spec.add_dependency 'activerecord', '>= 4.2', '< 8.0'
|
|
31
31
|
spec.add_dependency 'mysql-binuuid-rails', '>= 1.3', '< 2'
|
|
32
32
|
spec.add_dependency 'uuidtools', '>= 2.1', '< 3'
|
|
33
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: uuidable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sergey Gnuskov
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
@@ -81,7 +80,7 @@ dependencies:
|
|
|
81
80
|
version: '4.2'
|
|
82
81
|
- - "<"
|
|
83
82
|
- !ruby/object:Gem::Version
|
|
84
|
-
version: '
|
|
83
|
+
version: '8.0'
|
|
85
84
|
type: :runtime
|
|
86
85
|
prerelease: false
|
|
87
86
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -91,7 +90,7 @@ dependencies:
|
|
|
91
90
|
version: '4.2'
|
|
92
91
|
- - "<"
|
|
93
92
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: '
|
|
93
|
+
version: '8.0'
|
|
95
94
|
- !ruby/object:Gem::Dependency
|
|
96
95
|
name: mysql-binuuid-rails
|
|
97
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -156,13 +155,13 @@ files:
|
|
|
156
155
|
- lib/uuidable/active_record.rb
|
|
157
156
|
- lib/uuidable/migration.rb
|
|
158
157
|
- lib/uuidable/v1_migration_helpers.rb
|
|
158
|
+
- lib/uuidable/v1_model_migration.rb
|
|
159
159
|
- lib/uuidable/version.rb
|
|
160
160
|
- uuidable.gemspec
|
|
161
161
|
homepage: https://github.com/flant/uuidable
|
|
162
162
|
licenses:
|
|
163
163
|
- MIT
|
|
164
164
|
metadata: {}
|
|
165
|
-
post_install_message:
|
|
166
165
|
rdoc_options: []
|
|
167
166
|
require_paths:
|
|
168
167
|
- lib
|
|
@@ -177,8 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
176
|
- !ruby/object:Gem::Version
|
|
178
177
|
version: '0'
|
|
179
178
|
requirements: []
|
|
180
|
-
rubygems_version: 3.
|
|
181
|
-
signing_key:
|
|
179
|
+
rubygems_version: 3.6.9
|
|
182
180
|
specification_version: 4
|
|
183
181
|
summary: Helps using uuid everywhere in routes instead of id for ActiveRecord models.
|
|
184
182
|
test_files: []
|