method

deep_deduplicate

Importance_0
v6.1.7.7 - Show latest stable - 0 notes - Class: SchemaCache
deep_deduplicate(value) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/connection_adapters/schema_cache.rb, line 202
          def deep_deduplicate(value)
            case value
            when Hash
              value.transform_keys { |k| deep_deduplicate(k) }.transform_values { |v| deep_deduplicate(v) }
            when Array
              value.map { |i| deep_deduplicate(i) }
            when String
              if value.tainted?
                # Ruby 2.6 and 2.7 have slightly different implementations of the String#-@ method.
                # In Ruby 2.6, the receiver of the String#-@ method is modified under certain
                # circumstances, and this was later identified as a bug
                # (https://bugs.ruby-lang.org/issues/15926) and only fixed in Ruby 2.7.
                value = value.dup
              end
              -value
            when Deduplicable
              -value
            else
              value
            end
          end
Register or log in to add new notes.