From 861b7f54159f5431cd7a5998499c16c2521f201f Mon Sep 17 00:00:00 2001 From: Rafal Wojsznis Date: Wed, 4 Jul 2018 15:19:12 +0200 Subject: [PATCH] Explicitly cast json object to corresponding types Makes it compatible with newer Crystal 0.25.x release --- src/multi_auth/providers/google.cr | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/multi_auth/providers/google.cr b/src/multi_auth/providers/google.cr index 1f47a8f..ae9f263 100644 --- a/src/multi_auth/providers/google.cr +++ b/src/multi_auth/providers/google.cr @@ -66,10 +66,12 @@ class MultiAuth::Provider::Google < MultiAuth::Provider private def primary?(field) field = json[field]? - return nil if field.nil? - field.each do |item| + return unless field + + field.as_a.each do |item| return item if item["metadata"]["primary"].as_bool? end + nil end @@ -101,7 +103,7 @@ class MultiAuth::Provider::Google < MultiAuth::Provider user.phone = primary("phoneNumbers")["canonicalForm"].as_s if primary?("phoneNumbers") user.description = primary("biographies")["value"].as_s if primary?("biographies") - json["urls"].each do |url| + json["urls"].as_a.each do |url| urls = {} of String => String urls[url["type"].as_s] = url["value"].as_s