globalize 6.0.0 → 6.2.0

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: 7501e626a9b5bfd187c9db3d0b5a809351308d7783c606a486cb9dab2a7d1649
4
- data.tar.gz: f3661b320279e118f396356680dceaa12d322495d823978a1b89d9628ec712de
3
+ metadata.gz: cabd646999269152beb8dc97eafa531bdd0627206b113c8ce7e90a17343a0369
4
+ data.tar.gz: 8fa08f217088f91bcb62e2b1667feefbc0833de0406b353890ba75568f506681
5
5
  SHA512:
6
- metadata.gz: 525c265c86c7ed85a78dea1c721c20f98db1b74cf23bb49453e5677c3ee4605e18fe708d1e1f77723b784f5d98f717181f154c7cd664fe54236756711149881a
7
- data.tar.gz: 25e5300ccf2279af73d7e8df8c2ffd5f23a616a3d1fbb3c6289dff82182277b4e045a7ca1443643b44f78f9d0ac2cb5a188ebe9a7e455dd2cbb700d0dc857939
6
+ metadata.gz: dbf148ebedffe9847a05e31053400cbe0d3e4292689704143b68ca2884a8464d4703fb6bd4ef142551b8ddd3091c650da0142a75eca871d348d9576861d855ce
7
+ data.tar.gz: a408491fb728aa2692f1ee7b71cb546ad0fc747f1f754bf779221af51b122c2442b530efc067b00fc768d56e1b80a2b09fcc0f124e2eaae7bffcca3a6af3d106
checksums.yaml.gz.sig CHANGED
Binary file
data/Appraisals CHANGED
@@ -3,9 +3,10 @@
3
3
  RAILS_VERSIONS = %w[
4
4
  4.2.11.3
5
5
  5.1.7
6
- 5.2.4.4
7
- 6.0.3.4
8
- 6.1.0
6
+ 5.2.5
7
+ 6.0.3.6
8
+ 6.1.3.1
9
+ 7.0.0
9
10
  ]
10
11
 
11
12
  RAILS_VERSIONS.each do |version|
@@ -13,12 +14,12 @@ RAILS_VERSIONS.each do |version|
13
14
  gem 'activemodel', version
14
15
  gem 'activerecord', version
15
16
 
16
- if version =~ /^6/
17
- gem 'sqlite3', '~> 1.4', platforms: [:ruby, :rbx]
17
+ if version =~ /^4/
18
+ gem 'sqlite3', '~> 1.3.6', platforms: [:ruby, :rbx]
18
19
  elsif version =~ /^5/
19
20
  gem 'sqlite3', '~> 1.3', '>= 1.3.6', platforms: [:ruby, :rbx]
20
- else version =~ /^4/
21
- gem 'sqlite3', '~> 1.3.6', platforms: [:ruby, :rbx]
21
+ else
22
+ gem 'sqlite3', '~> 1.4', platforms: [:ruby, :rbx]
22
23
  end
23
24
 
24
25
  if !ENV['CI'] || %w(postgres postgresql).include?(ENV['DB'])
@@ -31,11 +32,6 @@ RAILS_VERSIONS.each do |version|
31
32
  end
32
33
  end
33
34
 
34
- platforms :rbx do
35
- gem "rubysl", "~> 2.0"
36
- gem "rubinius-developer_tools"
37
- end
38
-
39
35
  platforms :jruby do
40
36
  if !ENV['CI'] || ENV['DB'] == 'sqlite3'
41
37
  gem 'activerecord-jdbcsqlite3-adapter', '~> 1'
data/CHANGELOG.md CHANGED
@@ -1,11 +1,28 @@
1
1
  # Globalize Changelog
2
2
 
3
- ## Unreleased
3
+ ## 6.2.0 (2022-05-24)
4
+
5
+ * Fix asset precompile in docker build workflow [#799](https://github.com/globalize/globalize/pull/799) by [Diefferson Koderer Môro](https://github.com/djpremier)
6
+
7
+ ## 6.1.0 (2022-02-25)
8
+
9
+ * Patch ActiveSupport in Rails 7.0.0+ [#792](https://github.com/globalize/globalize/pull/792) by [Daniel Chan](https://github.com/mynameisdaniel) and [Artis Raugulis](https://github.com/artisr)
10
+
11
+ ## 6.0.1 (2021-06-23)
12
+
13
+ * Fix errors with Rails 6.1 and Ruby 3.0 [#778](https://github.com/globalize/globalize/pull/778) by [Andrew White](https://github.com/pixeltrix)
14
+ * Track `saved_changes` for Rails 5.1 and above [#780](https://github.com/globalize/globalize/pull/780) by [Peter Postma](https://github.com/ppostma)
15
+
16
+ ## 6.0.0 (2021-01-11)
4
17
 
5
18
  * Add `create_source_columns` option for migrations. [#715](https://github.com/globalize/globalize/pull/715) by [IlyasValiullov](https://github.com/IlyasValiullov)
6
19
  * Autosave is now configurable, but defaults to false. [#736](https://github.com/globalize/globalize/pull/736) by [James Hart](https://github.com/hjhart)
7
20
  * Fix foreign keys translation. [#769](https://github.com/globalize/globalize/pull/769) by [Sergey Tokarenko](https://github.com/stokarenko)
8
21
 
22
+ ## 5.3.1 (2021-01-11)
23
+
24
+ * Fix foreign keys translation. [#773](https://github.com/globalize/globalize/pull/773) by [Sergey Tokarenko](https://github.com/stokarenko)
25
+
9
26
  ## 5.3.0 (2019-05-14)
10
27
 
11
28
  * Prevent 'SystemStackError: stack level too deep' error on attribute reset. [#722](https://github.com/globalize/globalize/pull/722) by [Reinier de Lange](https://github.com/moiristo)
data/CONTRIBUTING.md CHANGED
@@ -4,7 +4,7 @@ Globalize is a community project, and would not be here today if it were not for
4
4
 
5
5
  ## Bugs
6
6
 
7
- If you find a bug or something is not working as expected, please search through the [github issues](https://github.com/globalize/globalize/issues) and on [stackoverflow](http://stackoverflow.com/questions/tagged/globalize) first. If you cannot find any answers related to your issue, post a new one and we will try to address it as soon as we can. Note that we prioritize Rails 4 issues (`master` branch) over Rails 3 issues (`3-0-stable` branch).
7
+ If you find a bug or something is not working as expected, please search through the [github issues](https://github.com/globalize/globalize/issues) and on [stackoverflow](http://stackoverflow.com/questions/tagged/globalize) first. If you cannot find any answers related to your issue, post a new one and we will try to address it as soon as we can. Note that we prioritize Rails 4 issues (`main` branch) over Rails 3 issues (`3-0-stable` branch).
8
8
 
9
9
  If you also have some idea how to fix the bug, then by all means post a pull request (see below).
10
10
 
@@ -12,11 +12,11 @@ If you also have some idea how to fix the bug, then by all means post a pull req
12
12
 
13
13
  Have an idea for a new feature? Great! Keep in mind though that we are trying to cut down on non-core functionality in the Globalize core and push it to separate extensions, such as [globalize-accessors](https://github.com/globalize/globalize-accessors). If you are proposing something like this, we would prefer you to create a separate repository and gem for it.
14
14
 
15
- If however your feature would improve the core functionality of Globalize, please do submit a PR, preferably to the `master` branch.
15
+ If however your feature would improve the core functionality of Globalize, please do submit a PR, preferably to the `main` branch.
16
16
 
17
17
  ## Refactoring
18
18
 
19
- Have some free time? Help us improve our [code climate score](https://codeclimate.com/github/globalize/globalize) by refactoring the codebase. If the tests still pass and the changes seem reasonable, we will happily merge them. As elsewhere, priority always goes to the Rails/AR 4 series (`master` branch).
19
+ Have some free time? Help us improve our [code climate score](https://codeclimate.com/github/globalize/globalize) by refactoring the codebase. If the tests still pass and the changes seem reasonable, we will happily merge them. As elsewhere, priority always goes to the Rails/AR 4 series (`main` branch).
20
20
 
21
21
  ## Documentation
22
22
 
@@ -32,7 +32,7 @@ Have a bug fix, code improvement or proposed feature? Do the following:
32
32
  4. Push to the branch: `git push origin my_new_feature`
33
33
  5. Submit a pull request.
34
34
 
35
- For pull requests to Rails/ActiveRecord 4 version of Globalize (v3.x), post to the `master` branch. For pull requests to the Rails/ActiveRecord 3.x version of Globalize (3.x), post to the `3-0-stable` branch.
35
+ For pull requests to Rails/ActiveRecord 4 version of Globalize (v3.x), post to the `main` branch. For pull requests to the Rails/ActiveRecord 3.x version of Globalize (3.x), post to the `3-0-stable` branch.
36
36
 
37
37
  When you submit the pull request, GitHub Actions will run the [test suite](https://github.com/globalize/globalize/actions) against your branch and will highlight any failures. Unless there is a good reason for it, we do not generally accept pull requests that take Globalize from green to red.
38
38
 
data/Gemfile CHANGED
@@ -15,6 +15,6 @@ end
15
15
 
16
16
  if !ENV['CI'] || %w(postgres postgresql).include?(ENV['DB'])
17
17
  group :postgres, :postgresql do
18
- gem 'pg', '< 1.0', platforms: [:ruby, :rbx]
18
+ gem 'pg', platforms: [:ruby, :rbx]
19
19
  end
20
20
  end
data/Gemfile.lock ADDED
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ globalize (6.2.0)
5
+ activemodel (>= 4.2, < 7.1)
6
+ activerecord (>= 4.2, < 7.1)
7
+ request_store (~> 1.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (7.0.3)
13
+ activesupport (= 7.0.3)
14
+ activerecord (7.0.3)
15
+ activemodel (= 7.0.3)
16
+ activesupport (= 7.0.3)
17
+ activesupport (7.0.3)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 1.6, < 2)
20
+ minitest (>= 5.1)
21
+ tzinfo (~> 2.0)
22
+ ansi (1.5.0)
23
+ appraisal (2.4.1)
24
+ bundler
25
+ rake
26
+ thor (>= 0.14.0)
27
+ builder (3.2.4)
28
+ coderay (1.1.3)
29
+ concurrent-ruby (1.1.10)
30
+ database_cleaner (2.0.1)
31
+ database_cleaner-active_record (~> 2.0.0)
32
+ database_cleaner-active_record (2.0.1)
33
+ activerecord (>= 5.a)
34
+ database_cleaner-core (~> 2.0.0)
35
+ database_cleaner-core (2.0.1)
36
+ i18n (1.10.0)
37
+ concurrent-ruby (~> 1.0)
38
+ m (1.6.0)
39
+ method_source (>= 0.6.7)
40
+ rake (>= 0.9.2.2)
41
+ method_source (1.0.0)
42
+ minitest (5.15.0)
43
+ minitest-reporters (1.5.0)
44
+ ansi
45
+ builder
46
+ minitest (>= 5.0)
47
+ ruby-progressbar
48
+ mysql2 (0.5.4)
49
+ pg (1.3.5)
50
+ pry (0.14.1)
51
+ coderay (~> 1.1)
52
+ method_source (~> 1.0)
53
+ psych (4.0.4)
54
+ stringio
55
+ rack (2.2.3)
56
+ rake (13.0.6)
57
+ rdoc (6.4.0)
58
+ psych (>= 4.0.0)
59
+ request_store (1.5.1)
60
+ rack (>= 1.4)
61
+ ruby-progressbar (1.11.0)
62
+ sqlite3 (1.4.2)
63
+ stringio (3.0.2)
64
+ thor (1.2.1)
65
+ tzinfo (2.0.4)
66
+ concurrent-ruby (~> 1.0)
67
+
68
+ PLATFORMS
69
+ arm64-darwin-21
70
+
71
+ DEPENDENCIES
72
+ appraisal
73
+ database_cleaner
74
+ globalize!
75
+ m
76
+ minitest
77
+ minitest-reporters
78
+ mysql2
79
+ pg
80
+ pry
81
+ rake
82
+ rdoc
83
+ sqlite3
84
+
85
+ BUNDLED WITH
86
+ 2.3.13
data/globalize.gemspec CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |s|
17
17
  s.require_path = 'lib'
18
18
  s.required_ruby_version = '>= 2.4.6'
19
19
 
20
- s.add_dependency 'activerecord', '>= 4.2', '< 7.0'
21
- s.add_dependency 'activemodel', '>= 4.2', '< 7.0'
20
+ s.add_dependency 'activerecord', '>= 4.2', '< 7.1'
21
+ s.add_dependency 'activemodel', '>= 4.2', '< 7.1'
22
22
  s.add_dependency 'request_store', '~> 1.0'
23
23
 
24
24
  s.add_development_dependency 'appraisal'
@@ -41,7 +41,7 @@ module Globalize
41
41
  end
42
42
 
43
43
  begin
44
- if ::ActiveRecord::VERSION::STRING > "5.0" && table_exists? && translation_class.table_exists?
44
+ if Globalize.rails_5? && database_connection_possible?
45
45
  self.ignored_columns += translated_attribute_names.map(&:to_s)
46
46
  reset_column_information
47
47
  end
@@ -52,7 +52,8 @@ module Globalize
52
52
 
53
53
  def check_columns!(attr_names)
54
54
  # If tables do not exist or Rails version is greater than 5, do not warn about conflicting columns
55
- return unless ::ActiveRecord::VERSION::STRING < "5.0" && table_exists? && translation_class.table_exists?
55
+ return unless Globalize.rails_42? && database_connection_possible?
56
+
56
57
  if (overlap = attr_names.map(&:to_s) & column_names).present?
57
58
  ActiveSupport::Deprecation.warn(
58
59
  ["You have defined one or more translated attributes with names that conflict with column(s) on the model table. ",
@@ -3,7 +3,7 @@ module Globalize
3
3
  module ClassMethods
4
4
  delegate :translated_locales, :set_translations_table_name, :to => :translation_class
5
5
 
6
- if ::ActiveRecord::VERSION::STRING < "5.0.0"
6
+ if Globalize.rails_42?
7
7
  def columns_hash
8
8
  super.except(*translated_attribute_names.map(&:to_s))
9
9
  end
@@ -120,10 +120,24 @@ module Globalize
120
120
  end
121
121
 
122
122
  def define_translations_accessor(name)
123
- attribute(name, ::ActiveRecord::Type::Value.new) if ::ActiveRecord::VERSION::STRING >= "5.0"
123
+ attribute(name, ::ActiveRecord::Type::Value.new) if Globalize.rails_5?
124
124
  define_translations_reader(name)
125
125
  define_translations_writer(name)
126
126
  end
127
+
128
+ def database_connection_possible?
129
+ begin
130
+ # Without a connection tentative, the `connected?` function can responds with a false negative
131
+ ::ActiveRecord::Base.connection
132
+ rescue
133
+ # Ignore connection fail because in docker build hasn't a database connection
134
+ nil
135
+ end
136
+
137
+ ::ActiveRecord::Base.connected? &&
138
+ table_exists? &&
139
+ translation_class.table_exists?
140
+ end
127
141
  end
128
142
  end
129
143
  end
@@ -21,7 +21,7 @@ module Globalize
21
21
 
22
22
  # In Rails 5.2 we need to override *_assign_attributes* as it's called earlier
23
23
  # in the stack (before *assign_attributes*)
24
- # See https://github.com/rails/rails/blob/master/activerecord/lib/active_record/attribute_assignment.rb#L11
24
+ # See https://github.com/rails/rails/blob/5-2-stable/activerecord/lib/active_record/attribute_assignment.rb#L12
25
25
  def _assign_attributes(new_attributes)
26
26
  attributes = new_attributes.stringify_keys
27
27
  with_given_locale(attributes) { super(attributes.except("locale")) }
@@ -158,17 +158,34 @@ module Globalize
158
158
  Globalize.fallbacks(locale)
159
159
  end
160
160
 
161
- def save(*)
162
- result = Globalize.with_locale(translation.locale || I18n.default_locale) do
163
- without_fallbacks do
164
- super
161
+ if Globalize.ruby_27?
162
+ class_eval <<~RUBY, __FILE__, __LINE__ + 1
163
+ def save(...)
164
+ result = Globalize.with_locale(translation.locale || I18n.default_locale) do
165
+ without_fallbacks do
166
+ super
167
+ end
168
+ end
169
+ if result
170
+ globalize.clear_dirty
171
+ end
172
+
173
+ result
174
+ end
175
+ RUBY
176
+ else
177
+ def save(*)
178
+ result = Globalize.with_locale(translation.locale || I18n.default_locale) do
179
+ without_fallbacks do
180
+ super
181
+ end
182
+ end
183
+ if result
184
+ globalize.clear_dirty
165
185
  end
166
- end
167
- if result
168
- globalize.clear_dirty
169
- end
170
186
 
171
- result
187
+ result
188
+ end
172
189
  end
173
190
 
174
191
  def column_for_attribute name
@@ -185,6 +202,18 @@ module Globalize
185
202
  changed_attributes.present? || translations.any?(&:changed?)
186
203
  end
187
204
 
205
+ if Globalize.rails_51?
206
+ def saved_changes
207
+ super.tap do |changes|
208
+ translation = translation_for(::Globalize.locale, false)
209
+ if translation
210
+ translation_changes = translation.saved_changes.select { |name| translated?(name) }
211
+ changes.merge!(translation_changes) if translation_changes.any?
212
+ end
213
+ end
214
+ end
215
+ end
216
+
188
217
  if Globalize.rails_6?
189
218
  def changed_attributes
190
219
  super.merge(globalize.changed_attributes(::Globalize.locale))
@@ -89,13 +89,27 @@ module Globalize
89
89
  end
90
90
  end
91
91
 
92
- def add_translation_fields
93
- connection.change_table(translations_table_name) do |t|
94
- fields.each do |name, options|
95
- if options.is_a? Hash
96
- t.column name, options.delete(:type), options
97
- else
98
- t.column name, options
92
+ if Globalize.rails_6?
93
+ def add_translation_fields
94
+ connection.change_table(translations_table_name) do |t|
95
+ fields.each do |name, options|
96
+ if options.is_a? Hash
97
+ t.column name, options.delete(:type), **options
98
+ else
99
+ t.column name, options
100
+ end
101
+ end
102
+ end
103
+ end
104
+ else
105
+ def add_translation_fields
106
+ connection.change_table(translations_table_name) do |t|
107
+ fields.each do |name, options|
108
+ if options.is_a? Hash
109
+ t.column name, options.delete(:type), options
110
+ else
111
+ t.column name, options
112
+ end
99
113
  end
100
114
  end
101
115
  end
@@ -155,6 +169,8 @@ module Globalize
155
169
  # Create a hash containing the translated column names and their values.
156
170
  translated_attribute_names.inject(fields_to_update={}) do |f, name|
157
171
  f.update({name.to_sym => translated_record[name.to_s]})
172
+ # Remove attributes that will no longer be translated
173
+ translated_attribute_names.delete(name)
158
174
  end
159
175
 
160
176
  # Now, update the actual model's record with the hash.
@@ -99,7 +99,7 @@ module Globalize
99
99
  end
100
100
  end
101
101
 
102
- if ::ActiveRecord::VERSION::STRING < "5.0.0"
102
+ if Globalize.rails_42?
103
103
  def where_values_hash(*args)
104
104
  return super unless respond_to?(:translations_table_name)
105
105
  equalities = respond_to?(:with_default_scope) ? with_default_scope.where_values : where_values
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Globalize
4
- Version = '6.0.0'
4
+ Version = '6.2.0'
5
5
  end
data/lib/globalize.rb CHANGED
@@ -6,11 +6,21 @@ require 'patches/active_record/relation'
6
6
  require 'patches/active_record/serialization'
7
7
  require 'patches/active_record/uniqueness_validator'
8
8
  require 'patches/active_record/persistence'
9
+ require 'patches/active_support/inflections'
9
10
 
10
11
  module Globalize
11
12
  autoload :ActiveRecord, 'globalize/active_record'
12
13
  autoload :Interpolation, 'globalize/interpolation'
13
14
 
15
+ ACTIVE_RECORD_50 = Gem::Version.new('5.0.0')
16
+ ACTIVE_RECORD_51 = Gem::Version.new('5.1.0')
17
+ ACTIVE_RECORD_52 = Gem::Version.new('5.2.0')
18
+ ACTIVE_RECORD_60 = Gem::Version.new('6.0.0')
19
+ ACTIVE_RECORD_61 = Gem::Version.new('6.1.0')
20
+
21
+ CURRENT_RUBY = Gem::Version.new(RUBY_VERSION)
22
+ RUBY_VERSION_27 = Gem::Version.new('2.7.0')
23
+
14
24
  class << self
15
25
  def locale
16
26
  read_locale || I18n.locale
@@ -58,20 +68,32 @@ module Globalize
58
68
  RequestStore.store
59
69
  end
60
70
 
71
+ def ruby_27?
72
+ CURRENT_RUBY >= RUBY_VERSION_27
73
+ end
74
+
75
+ def rails_42?
76
+ ::ActiveRecord.version < ACTIVE_RECORD_50
77
+ end
78
+
61
79
  def rails_5?
62
- ::ActiveRecord.version >= Gem::Version.new('5.1.0')
80
+ ::ActiveRecord.version >= ACTIVE_RECORD_50
81
+ end
82
+
83
+ def rails_51?
84
+ ::ActiveRecord.version >= ACTIVE_RECORD_51
63
85
  end
64
86
 
65
87
  def rails_52?
66
- ::ActiveRecord.version >= Gem::Version.new('5.2.0')
88
+ ::ActiveRecord.version >= ACTIVE_RECORD_52
67
89
  end
68
90
 
69
91
  def rails_6?
70
- ::ActiveRecord.version >= Gem::Version.new('6.0.0')
92
+ ::ActiveRecord.version >= ACTIVE_RECORD_60
71
93
  end
72
94
 
73
95
  def rails_61?
74
- ::ActiveRecord.version >= Gem::Version.new('6.1.0')
96
+ ::ActiveRecord.version >= ACTIVE_RECORD_61
75
97
  end
76
98
 
77
99
  protected
@@ -1,3 +1,3 @@
1
- if ::ActiveRecord::VERSION::STRING < "5.0.0"
1
+ if ::ActiveRecord.version < Gem::Version.new("5.0.0")
2
2
  require_relative 'rails4/query_method'
3
- end
3
+ end
@@ -0,0 +1,45 @@
1
+ module Globalize
2
+ module Validations
3
+ module UniquenessValidator
4
+ def validate_each(record, attribute, value)
5
+ klass = record.class
6
+ if klass.translates? && klass.translated?(attribute)
7
+ finder_class = klass.translation_class
8
+ relation = build_relation(finder_class, attribute, value).where(locale: Globalize.locale)
9
+ relation = relation.where.not(klass.reflect_on_association(:translations).foreign_key => record.send(:id)) if record.persisted?
10
+
11
+
12
+ translated_scopes = Array(options[:scope]) & klass.translated_attribute_names
13
+ untranslated_scopes = Array(options[:scope]) - translated_scopes
14
+
15
+ relation = relation.joins(:globalized_model) if untranslated_scopes.present?
16
+ untranslated_scopes.each do |scope_item|
17
+ scope_value = record.send(scope_item)
18
+ reflection = klass.reflect_on_association(scope_item)
19
+ if reflection
20
+ scope_value = record.send(reflection.foreign_key)
21
+ scope_item = reflection.foreign_key
22
+ end
23
+ relation = relation.where(find_finder_class_for(record).table_name => { scope_item => scope_value })
24
+ end
25
+
26
+ translated_scopes.each do |scope_item|
27
+ scope_value = record.send(scope_item)
28
+ relation = relation.where(scope_item => scope_value)
29
+ end
30
+ relation = relation.merge(options[:conditions]) if options[:conditions]
31
+
32
+ if relation.exists?
33
+ error_options = options.except(:case_sensitive, :scope, :conditions)
34
+ error_options[:value] = value
35
+ record.errors.add(attribute, :taken, **error_options)
36
+ end
37
+ else
38
+ super(record, attribute, value)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ ActiveRecord::Validations::UniquenessValidator.prepend Globalize::Validations::UniquenessValidator
@@ -1,12 +1,19 @@
1
- if ::ActiveRecord::VERSION::STRING >= "5.0.0"
1
+ if ::ActiveRecord.version >= Gem::Version.new("5.0.0")
2
2
  module Globalize
3
3
  module Relation
4
4
  def where_values_hash(relation_table_name = table_name)
5
5
  return super unless respond_to?(:translations_table_name)
6
6
  super.merge(super(translations_table_name))
7
7
  end
8
+
9
+ if ::ActiveRecord.version >= Gem::Version.new("6.1.3")
10
+ def scope_for_create
11
+ return super unless respond_to?(:translations_table_name)
12
+ super.merge(where_values_hash(translations_table_name))
13
+ end
14
+ end
8
15
  end
9
16
  end
10
17
 
11
18
  ActiveRecord::Relation.prepend Globalize::Relation
12
- end
19
+ end
@@ -1,5 +1,5 @@
1
- if ::ActiveRecord::VERSION::STRING < "5.1.0"
1
+ if ::ActiveRecord.version < Gem::Version.new("5.1.0")
2
2
  require_relative 'rails4/serialization'
3
3
  else
4
4
  require_relative 'rails5_1/serialization'
5
- end
5
+ end
@@ -1,7 +1,9 @@
1
- if ::ActiveRecord::VERSION::STRING < "5.0.0"
1
+ if ::ActiveRecord.version < Gem::Version.new("5.0.0")
2
2
  require_relative 'rails4/uniqueness_validator'
3
- elsif ::ActiveRecord::VERSION::STRING < "5.1.0"
3
+ elsif ::ActiveRecord.version < Gem::Version.new("5.1.0")
4
4
  require_relative 'rails5/uniqueness_validator'
5
- else
5
+ elsif ::ActiveRecord.version < Gem::Version.new("6.1.0")
6
6
  require_relative 'rails5_1/uniqueness_validator'
7
- end
7
+ else
8
+ require_relative 'rails6_1/uniqueness_validator'
9
+ end
@@ -0,0 +1,14 @@
1
+ if ::ActiveSupport.version >= Gem::Version.new("7.0.0")
2
+ module Globalize
3
+ module Inflections
4
+ def instance_or_fallback(locale)
5
+ I18n.respond_to?(:fallbacks) && I18n.fallbacks[locale].each do |k|
6
+ return @__instance__[k] if @__instance__.key?(k)
7
+ end
8
+ instance(locale)
9
+ end
10
+ end
11
+ end
12
+
13
+ ActiveSupport::Inflector::Inflections.singleton_class.send :prepend, Globalize::Inflections
14
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: globalize
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
@@ -17,30 +17,30 @@ cert_chain:
17
17
  - |
18
18
  -----BEGIN CERTIFICATE-----
19
19
  MIIEMjCCApqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhnZW1z
20
- L0RDPXAvREM9YXJuZHQvREM9aW8wHhcNMjAwNTEwMjIxOTQ2WhcNMjEwNTEwMjIx
21
- OTQ2WjAjMSEwHwYDVQQDDBhnZW1zL0RDPXAvREM9YXJuZHQvREM9aW8wggGiMA0G
22
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDT+JzHYPGMYJt9ct2DCsbIymn1uJJp
23
- HnDkQESfsGe40jTC90oF2iVbVOkaacNc1N3CSWUZvZjuygUuS86P6/kpBILGdO2+
24
- bkXXKtfGC2YGGx9TdNLpCb4925vQHvdFeKXGpQDZdDw1SNC6zraZou47CvOE1cl2
25
- Bp+1QMZuGRZ4+5CzOEWDWurjqce3O1jUEbyBB7z5H0h/YEaxfXipxhL1Dhi0sgkH
26
- qP/e6SxzifdifdZCksJFQ06a1ji9hJY6eM23qbv/aaluVHAZSVBAQBS7rYniLo+N
27
- G4vpFhoubQO5u8UluUtCaPUpI/qOvVcSaZn3ZkzlMwC8b1RwAeXBQmtFE2wnrv2i
28
- ovTwoN7rHchwhgaHbkuFh4Wr92wGbrWL7J+X8rWKk1f8RF4kvtNE/NA6YrkxTpVh
29
- QMyDmekt7rTxvcq2NneLGroWIUVCx/JID+Jw492LKQ6Sl1/P2TRzdEDtqZAZL0gt
30
- xlWeMUfGG2D/gLnhs5qnaFaWQwGTmBnTgHcCAwEAAaNxMG8wCQYDVR0TBAIwADAL
31
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFEqtAyQVxPgKsrgoTQ1YmaIu/fmvMBoGA1Ud
20
+ L0RDPXAvREM9YXJuZHQvREM9aW8wHhcNMjEwNjIzMDkyNzU2WhcNMjIwNjIzMDky
21
+ NzU2WjAjMSEwHwYDVQQDDBhnZW1zL0RDPXAvREM9YXJuZHQvREM9aW8wggGiMA0G
22
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQD0CYnD37uLlJ3Urla2EnnUQ8S6s16k
23
+ AGMpAzpmARo8YwSqtYMJVGyBzUeI7y93Fk9ncswhIFSH/hnh/Ouat/ki9flHlZ+w
24
+ anv0M+9v3wCLyZSC5BQIWpoduFM/fuvLoDUJDWxL50RjwMS0qo2x2LvfQdHN8gn3
25
+ JdSIV5WLJKIvlmIl9S3pw0JO5KRUGn1PcBO7C0S0SlbhVjRHtlao1ycWUULsX109
26
+ hCh39MPGtnZpdCcxheh0TH/UA/jV0/du9/rQdoidkNHkaC24pPfBJ3nS+rAbWaHP
27
+ WmP+0rjfk/XnGBu/HZpKvlnwQjP3QdK4UMtWl8zewqFMNcIiBRALQugnL/SfrP/4
28
+ CSlha9LwkiE6ByeY4WGnNjNqpi5J3IzjEkZRAxG7u9gCB3FzTaBTyXZYI6jplYNw
29
+ TcCJIBHuoPaa+m9brpjb3Uv94nfM97ZP+OmpGYCCAMq4TT7OOV+t8wJc0w8bb0FO
30
+ ROhmVNTxrBaNcl6MkZn88EMRCsGgoWklOG0CAwEAAaNxMG8wCQYDVR0TBAIwADAL
31
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGu7pbmeILyHnBmannuaNRfdN8MsMBoGA1Ud
32
32
  EQQTMBGBD2dlbXNAcC5hcm5kdC5pbzAaBgNVHRIEEzARgQ9nZW1zQHAuYXJuZHQu
33
- aW8wDQYJKoZIhvcNAQELBQADggGBALu2HM50B8xqlAXkCwavJDvWWtV9pG1igFUg
34
- friZRWprUQ5nTaNmAd8p8qbJQwaIK2gt+DfYWfB9LtKnQTfbhLRBbmJ7zYw8LjKY
35
- PwCs4RWjDAiuyCO3ppfsz+1bsMUXPLgWlaUkXsUy3nr2NruEFTO9zu3wGYQQ93Tt
36
- vYSHOnP35UB4QjsjNrOO7FBaQfy6O909PP+GnVcJ62s9c26voJz63RSolwY7Jydw
37
- XUlG68jjJKSoDHRzVTmNB7sX8rs8P2kvYkpIUXPHyls3mWBWjBWbdEYWESZrxI2x
38
- dS7jY3AnfqhvsWra2pSREb2IDqPnJrHVOejnEI/zuuufUxLwDx3AC6SMdsyWkZ7V
39
- 9OmLt2rg75Sct6h2220lO5ySqYtqAXuOMBDGv5L0zLalx1g8LACA7uILTKVWh8B8
40
- Hsej0MQ3drCB1eA4c9OXdCUQJnY2aLTq3uNvTbZvoTgWK55eq3KLBJ4zzoKZ4tBX
41
- /HIFI/fEwYlI1Ji3oikUrHkc4rWgaQ==
33
+ aW8wDQYJKoZIhvcNAQELBQADggGBANlxc4uAnkPC3zbztG7uZfBfn4HSuvv655Pa
34
+ UaYZ6hNETFrqg78mGs3PkFe2Ru7cVWwckbmH46aq50QoNnx4ClxT03vr03n76Jg1
35
+ 8WWHkf0+rcINFlbtIFcmcFrois5Ow3n7pH+xstDtzoWcbh41WwuZStNhrIYsnjAK
36
+ /ovz8D5JlboxceOpVLB/0NiqNEWltK+EMQHmX25Sqf/r5o5rAL9zwEKPFp1Y5X+z
37
+ t2jBjYt2ymr1eMWxux6e+N2uKZL4MblHawxvKlI8UHsIiV9xrc4BwlwlbitcvNIL
38
+ ZykdSlpTJd0Guy92iYjCJMC09tMRUNxiVBwD3jRGSeW9YAPIZGXIcVlm6srIRDjJ
39
+ o8wB6oOvHAkRXnntOo/4bBDH+ehmgvhh/O/mI+au6C0M430fv+ooH0w08LEXLx1k
40
+ e17ZNASZffbQRP09MH2GZ2AOlkildTX6looWRforZEZi+qamognrozd3MI5QHi1W
41
+ UAZUzHLrrFu7gnkFvLVpxOUf4ItOkA==
42
42
  -----END CERTIFICATE-----
43
- date: 2021-01-11 00:00:00.000000000 Z
43
+ date: 2022-05-24 00:00:00.000000000 Z
44
44
  dependencies:
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: activerecord
@@ -51,7 +51,7 @@ dependencies:
51
51
  version: '4.2'
52
52
  - - "<"
53
53
  - !ruby/object:Gem::Version
54
- version: '7.0'
54
+ version: '7.1'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
@@ -61,7 +61,7 @@ dependencies:
61
61
  version: '4.2'
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
- version: '7.0'
64
+ version: '7.1'
65
65
  - !ruby/object:Gem::Dependency
66
66
  name: activemodel
67
67
  requirement: !ruby/object:Gem::Requirement
@@ -71,7 +71,7 @@ dependencies:
71
71
  version: '4.2'
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
- version: '7.0'
74
+ version: '7.1'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
@@ -81,7 +81,7 @@ dependencies:
81
81
  version: '4.2'
82
82
  - - "<"
83
83
  - !ruby/object:Gem::Version
84
- version: '7.0'
84
+ version: '7.1'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: request_store
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +218,7 @@ files:
218
218
  - CHANGELOG.md
219
219
  - CONTRIBUTING.md
220
220
  - Gemfile
221
+ - Gemfile.lock
221
222
  - LICENSE
222
223
  - README.md
223
224
  - Rakefile
@@ -248,10 +249,12 @@ files:
248
249
  - lib/patches/active_record/rails5/uniqueness_validator.rb
249
250
  - lib/patches/active_record/rails5_1/serialization.rb
250
251
  - lib/patches/active_record/rails5_1/uniqueness_validator.rb
252
+ - lib/patches/active_record/rails6_1/uniqueness_validator.rb
251
253
  - lib/patches/active_record/relation.rb
252
254
  - lib/patches/active_record/serialization.rb
253
255
  - lib/patches/active_record/uniqueness_validator.rb
254
256
  - lib/patches/active_record/xml_attribute_serializer.rb
257
+ - lib/patches/active_support/inflections.rb
255
258
  homepage: http://github.com/globalize/globalize
256
259
  licenses:
257
260
  - MIT
@@ -271,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
274
  - !ruby/object:Gem::Version
272
275
  version: '0'
273
276
  requirements: []
274
- rubygems_version: 3.2.3
277
+ rubygems_version: 3.3.7
275
278
  signing_key:
276
279
  specification_version: 4
277
280
  summary: Rails I18n de-facto standard library for ActiveRecord model/data translation
metadata.gz.sig CHANGED
Binary file