CoolFace
Apppublic

Rovatiana/LearnPulse

sourceHugging Faceupdated 1y agoView on Hugging Face
1likes
stringify_ids.rb35 linesDownload Raw Back to lib
1module StringifyIds2  def stringify_ids(hash)3    hash.keys.each_with_object({}) do |key, result|4      string_key = key.to_s5      original_value = hash[key]6 7      result[key] = if original_value.is_a?(Array)8        stringify_ids_in_array(string_key, original_value)9      elsif original_value.respond_to?(:key?)10        stringify_ids(original_value)11      elsif (string_key == 'id' || string_key.ends_with?('_id')) && original_value.is_a?(Numeric)12        original_value.to_s13      else14        original_value15      end16    end17  end18 19  private20 21  def stringify_ids_in_array(key, array)22    if key.ends_with?('_ids')23      array.map(&:to_s)24    else25      array.map do |element|26        if element.respond_to?(:key?)27          stringify_ids(element)28        else29          element30        end31      end32    end33  end34end35