From 1309ea63e9f9de56679f7c07027b487f92259a4d Mon Sep 17 00:00:00 2001 From: Alex Reisner <alex@alexreisner.com> Date: Wed, 25 May 2016 09:58:14 -0400 Subject: [PATCH] Refactor ESRI lookup's `token` method. This should improve readability and make testing easier as it separates the various tasks into separate methods. --- lib/geocoder/lookups/esri.rb | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/geocoder/lookups/esri.rb b/lib/geocoder/lookups/esri.rb index c6562446..08523913 100644 --- a/lib/geocoder/lookups/esri.rb +++ b/lib/geocoder/lookups/esri.rb @@ -48,14 +48,17 @@ module Geocoder::Lookup end def token - if configuration[:token] && configuration[:token].active? # if we have a token, use it - configuration[:token].to_s - elsif configuration.api_key # generate a new token if we have credentials - token_instance = Geocoder::EsriToken.generate_token(*configuration.api_key) - Geocoder.configure(:esri => Geocoder.config[:esri].merge({:token => token_instance})) - token_instance.to_s - end + fetch_and_save_token! if !valid_token_configured? and configuration.api_key + configuration[:token].to_s unless configuration[:token].nil? + end + + def valid_token_configured? + !configuration[:token].nil? and configuration[:token].active? end + def fetch_and_save_token! + token_instance = Geocoder::EsriToken.generate_token(*configuration.api_key) + Geocoder.configure(:esri => {:token => token_instance}) + end end end -- GitLab