globalize 6.0.0 → 6.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: 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