Sha256: 958ed795f94a7717b9c60f65019b641bafbe8d61eb5315f1b771c4db7216fae2

Contents?: true

Size: 585 Bytes

Versions: 7

Compression:

Stored size: 585 Bytes

Contents

# frozen_string_literal: true

class Serega
  module SeregaPlugins
    module Preloads
      #
      # Utility to freeze nested hashes and arrays
      #
      class EnumDeepFreeze
        class << self
          #
          # Freezes nested enumerable data
          #
          # @param data[Hash, Array] data to freeze
          #
          # @return [Hash, Array] same deeply frozen data
          #
          def call(data)
            data.each_entry { |entry| call(entry) } if data.is_a?(Enumerable)
            data.freeze
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
serega-0.10.0 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.9.0 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.8.3 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.8.2 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.8.1 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.8.0 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb
serega-0.7.0 lib/serega/plugins/preloads/lib/enum_deep_freeze.rb