globalize 6.0.0 → 6.0.1
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
 - checksums.yaml.gz.sig +0 -0
 - data.tar.gz.sig +0 -0
 - data/Appraisals +3 -8
 - data/CHANGELOG.md +10 -1
 - data/Gemfile +1 -1
 - data/lib/globalize.rb +25 -4
 - data/lib/globalize/active_record/act_macro.rb +2 -2
 - data/lib/globalize/active_record/class_methods.rb +2 -2
 - data/lib/globalize/active_record/instance_methods.rb +38 -9
 - data/lib/globalize/active_record/migration.rb +21 -7
 - data/lib/globalize/active_record/translated_attributes_query.rb +1 -1
 - data/lib/globalize/version.rb +1 -1
 - data/lib/patches/active_record/query_method.rb +2 -2
 - data/lib/patches/active_record/rails6_1/uniqueness_validator.rb +45 -0
 - data/lib/patches/active_record/relation.rb +9 -2
 - data/lib/patches/active_record/serialization.rb +2 -2
 - data/lib/patches/active_record/uniqueness_validator.rb +6 -4
 - metadata +25 -24
 - metadata.gz.sig +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 232c58a035dbc34d1e513c552d3d0a52a7b349c414fb8c8126c74bfa94831e5e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: d25bd58906d809849ba3ef3ed393e80c599bab47e2115c25ff9f75e11d1a4c7c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5c8d6cb1111dddd8f36e3baf3ec053a4db7f1b76b302694a631e41dcb849506d351dd5c5562e513e864912a129b030ae5cf6a0c6378460e534812a65651a60ea
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 43bafaeac8081685600f7201fb88ae5d2c4195ac0c5d40595d78d846deb578f6255c42c55a8b68aafc18dc76a32c0ac370330ecfc1ae3bc6a0379415edb65309
         
     | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data.tar.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/Appraisals
    CHANGED
    
    | 
         @@ -3,9 +3,9 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            RAILS_VERSIONS = %w[
         
     | 
| 
       4 
4 
     | 
    
         
             
              4.2.11.3
         
     | 
| 
       5 
5 
     | 
    
         
             
              5.1.7
         
     | 
| 
       6 
     | 
    
         
            -
              5.2. 
     | 
| 
       7 
     | 
    
         
            -
              6.0.3. 
     | 
| 
       8 
     | 
    
         
            -
              6.1. 
     | 
| 
      
 6 
     | 
    
         
            +
              5.2.5
         
     | 
| 
      
 7 
     | 
    
         
            +
              6.0.3.6
         
     | 
| 
      
 8 
     | 
    
         
            +
              6.1.3.1
         
     | 
| 
       9 
9 
     | 
    
         
             
            ]
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            RAILS_VERSIONS.each do |version|
         
     | 
| 
         @@ -31,11 +31,6 @@ RAILS_VERSIONS.each do |version| 
     | 
|
| 
       31 
31 
     | 
    
         
             
                  end
         
     | 
| 
       32 
32 
     | 
    
         
             
                end
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
                platforms :rbx do
         
     | 
| 
       35 
     | 
    
         
            -
                  gem "rubysl", "~> 2.0"
         
     | 
| 
       36 
     | 
    
         
            -
                  gem "rubinius-developer_tools"
         
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
34 
     | 
    
         
             
                platforms :jruby do
         
     | 
| 
       40 
35 
     | 
    
         
             
                  if !ENV['CI'] || ENV['DB'] == 'sqlite3'
         
     | 
| 
       41 
36 
     | 
    
         
             
                    gem 'activerecord-jdbcsqlite3-adapter', '~> 1'
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,11 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Globalize Changelog
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            ##  
     | 
| 
      
 3 
     | 
    
         
            +
            ## 6.0.1 (2021-06-23)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * 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)
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Track `saved_changes` for Rails 5.1 and above [#780](https://github.com/globalize/globalize/pull/780) by [Peter Postma](https://github.com/ppostma)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            ## 6.0.0 (2021-01-11)
         
     | 
| 
       4 
9 
     | 
    
         | 
| 
       5 
10 
     | 
    
         
             
            * Add `create_source_columns` option for migrations. [#715](https://github.com/globalize/globalize/pull/715) by [IlyasValiullov](https://github.com/IlyasValiullov)
         
     | 
| 
       6 
11 
     | 
    
         
             
            * Autosave is now configurable, but defaults to false. [#736](https://github.com/globalize/globalize/pull/736) by [James Hart](https://github.com/hjhart)
         
     | 
| 
       7 
12 
     | 
    
         
             
            * Fix foreign keys translation. [#769](https://github.com/globalize/globalize/pull/769) by [Sergey Tokarenko](https://github.com/stokarenko)
         
     | 
| 
       8 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
            ## 5.3.1 (2021-01-11)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            * Fix foreign keys translation. [#773](https://github.com/globalize/globalize/pull/773) by [Sergey Tokarenko](https://github.com/stokarenko)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       9 
18 
     | 
    
         
             
            ## 5.3.0 (2019-05-14)
         
     | 
| 
       10 
19 
     | 
    
         | 
| 
       11 
20 
     | 
    
         
             
            * 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/Gemfile
    CHANGED
    
    
    
        data/lib/globalize.rb
    CHANGED
    
    | 
         @@ -11,6 +11,15 @@ module Globalize 
     | 
|
| 
       11 
11 
     | 
    
         
             
              autoload :ActiveRecord, 'globalize/active_record'
         
     | 
| 
       12 
12 
     | 
    
         
             
              autoload :Interpolation,   'globalize/interpolation'
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
              ACTIVE_RECORD_50 = Gem::Version.new('5.0.0')
         
     | 
| 
      
 15 
     | 
    
         
            +
              ACTIVE_RECORD_51 = Gem::Version.new('5.1.0')
         
     | 
| 
      
 16 
     | 
    
         
            +
              ACTIVE_RECORD_52 = Gem::Version.new('5.2.0')
         
     | 
| 
      
 17 
     | 
    
         
            +
              ACTIVE_RECORD_60 = Gem::Version.new('6.0.0')
         
     | 
| 
      
 18 
     | 
    
         
            +
              ACTIVE_RECORD_61 = Gem::Version.new('6.1.0')
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              CURRENT_RUBY     = Gem::Version.new(RUBY_VERSION)
         
     | 
| 
      
 21 
     | 
    
         
            +
              RUBY_VERSION_27  = Gem::Version.new('2.7.0')
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       14 
23 
     | 
    
         
             
              class << self
         
     | 
| 
       15 
24 
     | 
    
         
             
                def locale
         
     | 
| 
       16 
25 
     | 
    
         
             
                  read_locale || I18n.locale
         
     | 
| 
         @@ -58,20 +67,32 @@ module Globalize 
     | 
|
| 
       58 
67 
     | 
    
         
             
                  RequestStore.store
         
     | 
| 
       59 
68 
     | 
    
         
             
                end
         
     | 
| 
       60 
69 
     | 
    
         | 
| 
      
 70 
     | 
    
         
            +
                def ruby_27?
         
     | 
| 
      
 71 
     | 
    
         
            +
                  CURRENT_RUBY >= RUBY_VERSION_27
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                def rails_42?
         
     | 
| 
      
 75 
     | 
    
         
            +
                  ::ActiveRecord.version < ACTIVE_RECORD_50
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       61 
78 
     | 
    
         
             
                def rails_5?
         
     | 
| 
       62 
     | 
    
         
            -
                  ::ActiveRecord.version >=  
     | 
| 
      
 79 
     | 
    
         
            +
                  ::ActiveRecord.version >= ACTIVE_RECORD_50
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                def rails_51?
         
     | 
| 
      
 83 
     | 
    
         
            +
                  ::ActiveRecord.version >= ACTIVE_RECORD_51
         
     | 
| 
       63 
84 
     | 
    
         
             
                end
         
     | 
| 
       64 
85 
     | 
    
         | 
| 
       65 
86 
     | 
    
         
             
                def rails_52?
         
     | 
| 
       66 
     | 
    
         
            -
                  ::ActiveRecord.version >=  
     | 
| 
      
 87 
     | 
    
         
            +
                  ::ActiveRecord.version >= ACTIVE_RECORD_52
         
     | 
| 
       67 
88 
     | 
    
         
             
                end
         
     | 
| 
       68 
89 
     | 
    
         | 
| 
       69 
90 
     | 
    
         
             
                def rails_6?
         
     | 
| 
       70 
     | 
    
         
            -
                  ::ActiveRecord.version >=  
     | 
| 
      
 91 
     | 
    
         
            +
                  ::ActiveRecord.version >= ACTIVE_RECORD_60
         
     | 
| 
       71 
92 
     | 
    
         
             
                end
         
     | 
| 
       72 
93 
     | 
    
         | 
| 
       73 
94 
     | 
    
         
             
                def rails_61?
         
     | 
| 
       74 
     | 
    
         
            -
                  ::ActiveRecord.version >=  
     | 
| 
      
 95 
     | 
    
         
            +
                  ::ActiveRecord.version >= ACTIVE_RECORD_61
         
     | 
| 
       75 
96 
     | 
    
         
             
                end
         
     | 
| 
       76 
97 
     | 
    
         | 
| 
       77 
98 
     | 
    
         
             
              protected
         
     | 
| 
         @@ -41,7 +41,7 @@ module Globalize 
     | 
|
| 
       41 
41 
     | 
    
         
             
                    end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                    begin
         
     | 
| 
       44 
     | 
    
         
            -
                      if  
     | 
| 
      
 44 
     | 
    
         
            +
                      if Globalize.rails_5? && table_exists? && translation_class.table_exists?
         
     | 
| 
       45 
45 
     | 
    
         
             
                        self.ignored_columns += translated_attribute_names.map(&:to_s)
         
     | 
| 
       46 
46 
     | 
    
         
             
                        reset_column_information
         
     | 
| 
       47 
47 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -52,7 +52,7 @@ 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  
     | 
| 
      
 55 
     | 
    
         
            +
                    return unless Globalize.rails_42? && table_exists? && translation_class.table_exists?
         
     | 
| 
       56 
56 
     | 
    
         
             
                    if (overlap = attr_names.map(&:to_s) & column_names).present?
         
     | 
| 
       57 
57 
     | 
    
         
             
                      ActiveSupport::Deprecation.warn(
         
     | 
| 
       58 
58 
     | 
    
         
             
                        ["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  
     | 
| 
      
 6 
     | 
    
         
            +
                  if Globalize.rails_42?
         
     | 
| 
       7 
7 
     | 
    
         
             
                    def columns_hash
         
     | 
| 
       8 
8 
     | 
    
         
             
                      super.except(*translated_attribute_names.map(&:to_s))
         
     | 
| 
       9 
9 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -120,7 +120,7 @@ module Globalize 
     | 
|
| 
       120 
120 
     | 
    
         
             
                  end
         
     | 
| 
       121 
121 
     | 
    
         | 
| 
       122 
122 
     | 
    
         
             
                  def define_translations_accessor(name)
         
     | 
| 
       123 
     | 
    
         
            -
                    attribute(name, ::ActiveRecord::Type::Value.new) if  
     | 
| 
      
 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
         
     | 
| 
         @@ -158,17 +158,34 @@ module Globalize 
     | 
|
| 
       158 
158 
     | 
    
         
             
                    Globalize.fallbacks(locale)
         
     | 
| 
       159 
159 
     | 
    
         
             
                  end
         
     | 
| 
       160 
160 
     | 
    
         | 
| 
       161 
     | 
    
         
            -
                   
     | 
| 
       162 
     | 
    
         
            -
                     
     | 
| 
       163 
     | 
    
         
            -
                       
     | 
| 
       164 
     | 
    
         
            -
                         
     | 
| 
      
 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 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
                     
     | 
| 
       93 
     | 
    
         
            -
                       
     | 
| 
       94 
     | 
    
         
            -
                         
     | 
| 
       95 
     | 
    
         
            -
                           
     | 
| 
       96 
     | 
    
         
            -
                             
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                             
     | 
| 
      
 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
         
     | 
| 
         @@ -99,7 +99,7 @@ module Globalize 
     | 
|
| 
       99 
99 
     | 
    
         
             
                    end
         
     | 
| 
       100 
100 
     | 
    
         
             
                  end
         
     | 
| 
       101 
101 
     | 
    
         | 
| 
       102 
     | 
    
         
            -
                  if  
     | 
| 
      
 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
         
     | 
    
        data/lib/globalize/version.rb
    CHANGED
    
    
| 
         @@ -1,3 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            if ::ActiveRecord 
     | 
| 
      
 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 
     | 
| 
      
 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,7 +1,9 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            if ::ActiveRecord 
     | 
| 
      
 1 
     | 
    
         
            +
            if ::ActiveRecord.version < Gem::Version.new("5.0.0")
         
     | 
| 
       2 
2 
     | 
    
         
             
              require_relative 'rails4/uniqueness_validator'
         
     | 
| 
       3 
     | 
    
         
            -
            elsif ::ActiveRecord 
     | 
| 
      
 3 
     | 
    
         
            +
            elsif ::ActiveRecord.version < Gem::Version.new("5.1.0")
         
     | 
| 
       4 
4 
     | 
    
         
             
              require_relative 'rails5/uniqueness_validator'
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
            elsif ::ActiveRecord.version < Gem::Version.new("6.1.0")
         
     | 
| 
       6 
6 
     | 
    
         
             
              require_relative 'rails5_1/uniqueness_validator'
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
            else
         
     | 
| 
      
 8 
     | 
    
         
            +
              require_relative 'rails6_1/uniqueness_validator'
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
    
        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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 6.0.1
         
     | 
| 
       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 
     | 
    
         
            -
               
     | 
| 
       21 
     | 
    
         
            -
               
     | 
| 
       22 
     | 
    
         
            -
               
     | 
| 
       23 
     | 
    
         
            -
               
     | 
| 
       24 
     | 
    
         
            -
               
     | 
| 
       25 
     | 
    
         
            -
               
     | 
| 
       26 
     | 
    
         
            -
               
     | 
| 
       27 
     | 
    
         
            -
               
     | 
| 
       28 
     | 
    
         
            -
               
     | 
| 
       29 
     | 
    
         
            -
               
     | 
| 
       30 
     | 
    
         
            -
               
     | 
| 
       31 
     | 
    
         
            -
               
     | 
| 
      
 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 
     | 
    
         
            -
               
     | 
| 
       34 
     | 
    
         
            -
               
     | 
| 
       35 
     | 
    
         
            -
               
     | 
| 
       36 
     | 
    
         
            -
               
     | 
| 
       37 
     | 
    
         
            -
               
     | 
| 
       38 
     | 
    
         
            -
               
     | 
| 
       39 
     | 
    
         
            -
               
     | 
| 
       40 
     | 
    
         
            -
               
     | 
| 
       41 
     | 
    
         
            -
               
     | 
| 
      
 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- 
     | 
| 
      
 43 
     | 
    
         
            +
            date: 2021-06-23 00:00:00.000000000 Z
         
     | 
| 
       44 
44 
     | 
    
         
             
            dependencies:
         
     | 
| 
       45 
45 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       46 
46 
     | 
    
         
             
              name: activerecord
         
     | 
| 
         @@ -248,6 +248,7 @@ files: 
     | 
|
| 
       248 
248 
     | 
    
         
             
            - lib/patches/active_record/rails5/uniqueness_validator.rb
         
     | 
| 
       249 
249 
     | 
    
         
             
            - lib/patches/active_record/rails5_1/serialization.rb
         
     | 
| 
       250 
250 
     | 
    
         
             
            - lib/patches/active_record/rails5_1/uniqueness_validator.rb
         
     | 
| 
      
 251 
     | 
    
         
            +
            - lib/patches/active_record/rails6_1/uniqueness_validator.rb
         
     | 
| 
       251 
252 
     | 
    
         
             
            - lib/patches/active_record/relation.rb
         
     | 
| 
       252 
253 
     | 
    
         
             
            - lib/patches/active_record/serialization.rb
         
     | 
| 
       253 
254 
     | 
    
         
             
            - lib/patches/active_record/uniqueness_validator.rb
         
     | 
| 
         @@ -271,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       271 
272 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       272 
273 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       273 
274 
     | 
    
         
             
            requirements: []
         
     | 
| 
       274 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 275 
     | 
    
         
            +
            rubygems_version: 3.1.6
         
     | 
| 
       275 
276 
     | 
    
         
             
            signing_key:
         
     | 
| 
       276 
277 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       277 
278 
     | 
    
         
             
            summary: Rails I18n de-facto standard library for ActiveRecord model/data translation
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     |