globalize 6.0.1 → 6.2.1

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: 232c58a035dbc34d1e513c552d3d0a52a7b349c414fb8c8126c74bfa94831e5e
4
- data.tar.gz: d25bd58906d809849ba3ef3ed393e80c599bab47e2115c25ff9f75e11d1a4c7c
3
+ metadata.gz: dea2f69ccf135fbe06acbc84c800b55e86c91ec4af79d7bfee2f633f707e2dce
4
+ data.tar.gz: '08fb1fece6efe2c8ef6c3269a6db1d816374e680facedf771ab3bad361a01fa6'
5
5
  SHA512:
6
- metadata.gz: 5c8d6cb1111dddd8f36e3baf3ec053a4db7f1b76b302694a631e41dcb849506d351dd5c5562e513e864912a129b030ae5cf6a0c6378460e534812a65651a60ea
7
- data.tar.gz: 43bafaeac8081685600f7201fb88ae5d2c4195ac0c5d40595d78d846deb578f6255c42c55a8b68aafc18dc76a32c0ac370330ecfc1ae3bc6a0379415edb65309
6
+ metadata.gz: ae62da6d81f0a0deecf81985717bcc565d4a6b105483dcf0234f842c0954e3c66dc9f277be67f6119b35766cbcfdbb5cc2eb881c5be8562c650ff972484e4290
7
+ data.tar.gz: 82e457b56e752a61748cb2f6684f96daa6387915addad2414749fd90504ad3e42e426c002f4c14bc78a440c62927e61dfddef46d489b1c627f75d1d5616826f9
checksums.yaml.gz.sig CHANGED
Binary file
data/Appraisals CHANGED
@@ -6,6 +6,7 @@ RAILS_VERSIONS = %w[
6
6
  5.2.5
7
7
  6.0.3.6
8
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'])
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Globalize Changelog
2
2
 
3
+ ## 6.2.1 (2022-05-24)
4
+
5
+ * Changed serialize method in Rails 6.1.0+ [#798](https://github.com/globalize/globalize/pull/798) by [Alex](https://github.com/oivoodoo)
6
+
7
+ ## 6.2.0 (2022-05-24)
8
+
9
+ * Fix asset precompile in docker build workflow [#799](https://github.com/globalize/globalize/pull/799) by [Diefferson Koderer Môro](https://github.com/djpremier)
10
+
11
+ ## 6.1.0 (2022-02-25)
12
+
13
+ * 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)
14
+
3
15
  ## 6.0.1 (2021-06-23)
4
16
 
5
17
  * 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)
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.lock ADDED
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ globalize (6.2.1)
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 Globalize.rails_5? && 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 Globalize.rails_42? && 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. ",
@@ -124,6 +124,20 @@ module Globalize
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")) }
@@ -169,6 +169,8 @@ module Globalize
169
169
  # Create a hash containing the translated column names and their values.
170
170
  translated_attribute_names.inject(fields_to_update={}) do |f, name|
171
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)
172
174
  end
173
175
 
174
176
  # Now, update the actual model's record with the hash.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Globalize
4
- Version = '6.0.1'
4
+ Version = '6.2.1'
5
5
  end
data/lib/globalize.rb CHANGED
@@ -6,6 +6,7 @@ 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'
@@ -0,0 +1,22 @@
1
+ module Globalize
2
+ module AttributeMethods
3
+ module Serialization
4
+ def serialize(attr_name, class_name_or_coder = Object, **options)
5
+ super(attr_name, class_name_or_coder, **options)
6
+
7
+ coder = if class_name_or_coder == ::JSON
8
+ ::ActiveRecord::Coders::JSON
9
+ elsif [:load, :dump].all? { |x| class_name_or_coder.respond_to?(x) }
10
+ class_name_or_coder
11
+ else
12
+ ::ActiveRecord::Coders::YAMLColumn.new(attr_name, class_name_or_coder)
13
+ end
14
+
15
+ self.globalize_serialized_attributes = globalize_serialized_attributes.dup
16
+ self.globalize_serialized_attributes[attr_name] = coder
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ ActiveRecord::AttributeMethods::Serialization::ClassMethods.send(:prepend, Globalize::AttributeMethods::Serialization)
@@ -1,5 +1,7 @@
1
1
  if ::ActiveRecord.version < Gem::Version.new("5.1.0")
2
2
  require_relative 'rails4/serialization'
3
- else
3
+ elsif ::ActiveRecord.version < Gem::Version.new("6.1.0")
4
4
  require_relative 'rails5_1/serialization'
5
+ else
6
+ require_relative 'rails6_1/serialization'
5
7
  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.1
4
+ version: 6.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs
@@ -40,7 +40,7 @@ cert_chain:
40
40
  e17ZNASZffbQRP09MH2GZ2AOlkildTX6looWRforZEZi+qamognrozd3MI5QHi1W
41
41
  UAZUzHLrrFu7gnkFvLVpxOUf4ItOkA==
42
42
  -----END CERTIFICATE-----
43
- date: 2021-06-23 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,11 +249,13 @@ 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/serialization.rb
251
253
  - lib/patches/active_record/rails6_1/uniqueness_validator.rb
252
254
  - lib/patches/active_record/relation.rb
253
255
  - lib/patches/active_record/serialization.rb
254
256
  - lib/patches/active_record/uniqueness_validator.rb
255
257
  - lib/patches/active_record/xml_attribute_serializer.rb
258
+ - lib/patches/active_support/inflections.rb
256
259
  homepage: http://github.com/globalize/globalize
257
260
  licenses:
258
261
  - MIT
@@ -272,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
275
  - !ruby/object:Gem::Version
273
276
  version: '0'
274
277
  requirements: []
275
- rubygems_version: 3.1.6
278
+ rubygems_version: 3.3.7
276
279
  signing_key:
277
280
  specification_version: 4
278
281
  summary: Rails I18n de-facto standard library for ActiveRecord model/data translation
metadata.gz.sig CHANGED
Binary file