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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa4a74b0f2c720e55d414291fa36806fe58fc980c4f633e8986038b282519938
4
- data.tar.gz: 5b94d93dad302eb9b5e1f1772db986077d1304ca8a1ae1c46411fc7044f2b541
3
+ metadata.gz: 48b7b698e07705d713624e8254b93d618ca6e133732256ea2ea727a55929f631
4
+ data.tar.gz: 29fb889f96831b6f7864c85a888c1071355d52f0ae5a4c7fc7b1c4c3558aca53
5
5
  SHA512:
6
- metadata.gz: 15a958b147645fc441dd5cc5acc6b0387493dc18ab047286dce11489d7c9d26f65db748506dbbb7892be4391b4144c35c676cb82a542d58213fc35148c557b4e
7
- data.tar.gz: 4ca1ea2507acba4721a10309c2909e7fd4e1ced208d35200f21cabe286dcdc3f47efc764e7a43bbe72bdc1a4a30438687c7c9e02d734adc8a948993f0ead127c
6
+ metadata.gz: f02007dbeaecfb60ff15e82ab7e78f4f7b93bf4ffcae8633d4aa52846ff14f9ed6b5b892716b091127cf0619098b976e8d052853bfb00d95e3b9c75721b6703d
7
+ data.tar.gz: 57f29e300007e22d3fe1aad4c84b657bdf06632b026744400ef8aa443b3f0992cb89bc19669bb77f8b2c51672f67ae753614fd23402b4c1d3ef312906fa0266c
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- uuidable (1.0.2)
5
- activerecord (>= 4.2, < 7.2)
4
+ uuidable (1.0.4)
5
+ activerecord (>= 4.2, < 8.0)
6
6
  mysql-binuuid-rails (>= 1.3, < 2)
7
7
  uuidtools (>= 2.1, < 3)
8
8
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uuidable
4
- VERSION = '1.0.2'
4
+ VERSION = '1.0.4'
5
5
  end
data/lib/uuidable.rb CHANGED
@@ -17,4 +17,5 @@ end
17
17
 
18
18
  require 'uuidable/migration'
19
19
  require 'uuidable/v1_migration_helpers'
20
+ require 'uuidable/v1_model_migration'
20
21
  require 'uuidable/active_record'
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', '< 7.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.2
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: 2024-04-26 00:00:00.000000000 Z
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: '7.2'
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: '7.2'
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.5.9
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: []