instance method deep_deduplicate

Ruby on Rails 6.1.7.10

Since v6.1.7.10 Private

Available in: v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

deep_deduplicate(value)

No documentation comment.

Parameters

value req
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

Defined in activerecord/lib/active_record/connection_adapters/schema_cache.rb line 202 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::SchemaCache

Type at least 2 characters to search.

↑↓ navigate · open · esc close