summaryrefslogtreecommitdiff
path: root/lib/gitlab/import_export/hash_util.rb
blob: d4adeeb37979d48d2575e6f42b08cfbfad7d8971 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module Gitlab
  module ImportExport
    class HashUtil
      def self.deep_symbolize_array!(array)
        return if array.blank?

        array.map! do |hash|
          hash.deep_symbolize_keys!

          yield(hash) if block_given?

          hash
        end
      end

      def self.deep_symbolize_array_with_date!(array)
        self.deep_symbolize_array!(array) do |hash|
          hash.select { |k, _v| k.to_s.end_with?('_date') }.each do |key, value|
            hash[key] = Time.zone.parse(value)
          end
        end
      end
    end
  end
end