Sha256: 0dae37ea2dd16562cdd5480c40bad7651222e69c7f2faa659ae30d9926050483

Contents?: true

Size: 829 Bytes

Versions: 2

Compression:

Stored size: 829 Bytes

Contents

# frozen_string_literal: true

module Hanami
  class Router
    # Params utilities
    #
    # @since 2.0.0
    # @api private
    class Params
      # Deep symbolize Hash params
      #
      # @param params [Hash] the params to symbolize
      #
      # @return [Hash] the symbolized params
      #
      # @api private
      # @since 2.0.0
      def self.deep_symbolize(params) # rubocop:disable Metrics/MethodLength
        params.each_with_object({}) do |(key, value), output|
          output[key.to_sym] =
            case value
            when ::Hash
              deep_symbolize(value)
            when Array
              value.map do |item|
                item.is_a?(::Hash) ? deep_symbolize(item) : item
              end
            else
              value
            end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hanami-router-2.0.0.alpha3 lib/hanami/router/params.rb
hanami-router-2.0.0.alpha2 lib/hanami/router/params.rb