switchman 3.5.17 → 3.5.19
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:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c0df62cfbd91bd2c05864fbae14ed6f7090ff31c2fe8c4d3915956604f20532f
         | 
| 4 | 
            +
              data.tar.gz: aa2f7a2aaabb1133136df74e596336a5cbc0273d035d30fc07a55bfb597810ab
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b805a3291f0b67e1682c3f73cb78d2aba912afb40e981260671951147af4e577d05eb00cce9849569368543e9f5c683898193dc754bf3e83cb965e4d77b00808
         | 
| 7 | 
            +
              data.tar.gz: 9d4dd4b68faf8596e85e291e6f0f55882645ca81a9225191235ebd2ecf20cc546378ce96bcefa0149d5f4794f15e27f95dde594643ba22e561306d60c3da51a4
         | 
| @@ -291,14 +291,14 @@ module Switchman | |
| 291 291 | 
             
                  end
         | 
| 292 292 |  | 
| 293 293 | 
             
                  module AutosaveAssociation
         | 
| 294 | 
            -
                     | 
| 295 | 
            -
                       | 
| 294 | 
            +
                    if ::Rails.version < "7.1"
         | 
| 295 | 
            +
                      def association_foreign_key_changed?(reflection, record, key)
         | 
| 296 | 
            +
                        return false if reflection.through_reflection?
         | 
| 296 297 |  | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 299 | 
            -
             | 
| 298 | 
            +
                        # have to use send instead of _read_attribute because sharding
         | 
| 299 | 
            +
                        record.has_attribute?(reflection.foreign_key) && record.send(reflection.foreign_key) != key
         | 
| 300 | 
            +
                      end
         | 
| 300 301 |  | 
| 301 | 
            -
                    if ::Rails.version < "7.1"
         | 
| 302 302 | 
             
                      def save_belongs_to_association(reflection)
         | 
| 303 303 | 
             
                        # this seems counter-intuitive, but the autosave code will assign to attribute bypassing switchman,
         | 
| 304 304 | 
             
                        # after reading the id attribute _without_ bypassing switchman. So we need Shard.current for the
         | 
| @@ -306,6 +306,16 @@ module Switchman | |
| 306 306 | 
             
                        shard.activate(connection_class_for_self_for_reflection(reflection)) { super }
         | 
| 307 307 | 
             
                      end
         | 
| 308 308 | 
             
                    else
         | 
| 309 | 
            +
                      def association_foreign_key_changed?(reflection, record, key)
         | 
| 310 | 
            +
                        return false if reflection.through_reflection?
         | 
| 311 | 
            +
             | 
| 312 | 
            +
                        foreign_key = Array(reflection.foreign_key)
         | 
| 313 | 
            +
                        return false unless foreign_key.all? { |k| record._has_attribute?(k) }
         | 
| 314 | 
            +
             | 
| 315 | 
            +
                        # have to use send instead of _read_attribute because sharding
         | 
| 316 | 
            +
                        foreign_key.map { |k| record.send(k) } != Array(key)
         | 
| 317 | 
            +
                      end
         | 
| 318 | 
            +
             | 
| 309 319 | 
             
                      def save_belongs_to_association(reflection)
         | 
| 310 320 | 
             
                        association = association_instance_get(reflection.name)
         | 
| 311 321 | 
             
                        return unless association&.loaded? && !association.stale_target?
         | 
| @@ -112,7 +112,9 @@ module Switchman | |
| 112 112 | 
             
                    return unless klass.integral_id?
         | 
| 113 113 |  | 
| 114 114 | 
             
                    primary_key = predicates.detect do |predicate|
         | 
| 115 | 
            -
                      (predicate.is_a?(::Arel::Nodes:: | 
| 115 | 
            +
                      (predicate.is_a?(::Arel::Nodes::Equality) ||
         | 
| 116 | 
            +
                       predicate.is_a?(::Arel::Nodes::In) ||
         | 
| 117 | 
            +
                       predicate.is_a?(::Arel::Nodes::HomogeneousIn)) &&
         | 
| 116 118 | 
             
                        predicate.left.is_a?(::Arel::Attributes::Attribute) &&
         | 
| 117 119 | 
             
                        predicate.left.relation.is_a?(::Arel::Table) && predicate.left.relation.klass == klass &&
         | 
| 118 120 | 
             
                        klass.primary_key == predicate.left.name
         | 
| @@ -209,7 +211,7 @@ module Switchman | |
| 209 211 | 
             
                    when String, Array
         | 
| 210 212 | 
             
                      values = (Hash === rest.first) ? rest.first.values : rest
         | 
| 211 213 |  | 
| 212 | 
            -
                      if values.grep(ActiveRecord::Relation).first
         | 
| 214 | 
            +
                      if shard_source_value != :explicit && values.grep(ActiveRecord::Relation).first
         | 
| 213 215 | 
             
                        raise "Sub-queries are not allowed as simple substitutions; " \
         | 
| 214 216 | 
             
                              "please build your relation with more structured methods so that Switchman is able to introspect it."
         | 
| 215 217 | 
             
                      end
         | 
    
        data/lib/switchman/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: switchman
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.5. | 
| 4 | 
            +
              version: 3.5.19
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Cody Cutrer
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2024- | 
| 13 | 
            +
            date: 2024-02-20 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: activerecord
         | 
| @@ -288,6 +288,7 @@ licenses: | |
| 288 288 | 
             
            - MIT
         | 
| 289 289 | 
             
            metadata:
         | 
| 290 290 | 
             
              rubygems_mfa_required: 'true'
         | 
| 291 | 
            +
              source_code_uri: https://github.com/instructure/switchman
         | 
| 291 292 | 
             
            post_install_message: 
         | 
| 292 293 | 
             
            rdoc_options: []
         | 
| 293 294 | 
             
            require_paths:
         |