@@ -273,53 +273,52 @@ def add_message(type, file, line_number, message)
273273CACHE_FILE = File . expand_path ( "../.api-cache.json" , __dir__ )
274274CACHE_TTL_SECONDS = 24 * 60 * 60 # 24 hours
275275
276+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
276277def load_api_cache!
277278 return unless File . exist? ( CACHE_FILE )
278279
279280 data = JSON . parse ( File . read ( CACHE_FILE ) )
280281 now = Time . now . to_i
281282 ttl = CACHE_TTL_SECONDS
282283
283- if data [ "repos" ]
284- data [ "repos" ] . each do |key , entry |
285- cached_at = entry [ "cached_at" ]
286- next unless cached_at
287- next if now - cached_at . to_i > ttl
288-
289- result = entry [ "value" ]
290- # Reconstruct a minimal object that responds to .full_name
291- cached = if result . nil?
292- nil
293- else
294- next unless result [ "full_name" ]
295-
296- Struct . new ( :full_name ) . new ( result [ "full_name" ] )
297- end
298- NewOctokit . class_variable_get ( :@@repos ) [ key ] = cached
299- end
284+ data [ "repos" ] &.each do |key , entry |
285+ cached_at = entry [ "cached_at" ]
286+ next unless cached_at
287+ next if now - cached_at . to_i > ttl
288+
289+ result = entry [ "value" ]
290+ # Reconstruct a minimal object that responds to .full_name
291+ cached = if result . nil?
292+ nil
293+ else
294+ next unless result [ "full_name" ]
295+
296+ Struct . new ( :full_name ) . new ( result [ "full_name" ] )
297+ end
298+ NewOctokit . class_variable_get ( :@@repos ) [ key ] = cached
300299 end
301300
302- if data [ "users" ]
303- data [ "users" ] . each do |key , entry |
304- cached_at = entry [ "cached_at" ]
305- next unless cached_at
306- next if now - cached_at . to_i > ttl
307-
308- result = entry [ "value" ]
309- cached = if result . nil?
310- nil
311- else
312- next unless result [ "login" ]
313-
314- Struct . new ( :login ) . new ( result [ "login" ] )
315- end
316- NewOctokit . class_variable_get ( :@@users ) [ key ] = cached
317- end
301+ data [ "users" ] &.each do |key , entry |
302+ cached_at = entry [ "cached_at" ]
303+ next unless cached_at
304+ next if now - cached_at . to_i > ttl
305+
306+ result = entry [ "value" ]
307+ cached = if result . nil?
308+ nil
309+ else
310+ next unless result [ "login" ]
311+
312+ Struct . new ( :login ) . new ( result [ "login" ] )
313+ end
314+ NewOctokit . class_variable_get ( :@@users ) [ key ] = cached
318315 end
319- rescue JSON :: ParserError , StandardError => e
320- warn "Failed to load API cache: #{ e . message } "
316+ rescue StandardError => error
317+ warn "Failed to load API cache: #{ error . message } "
321318end
319+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
322320
321+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
323322def save_api_cache!
324323 now = Time . now . to_i
325324 repos_data = { }
@@ -331,7 +330,11 @@ def save_api_cache!
331330
332331 repos_data [ key . to_s ] = {
333332 "cached_at" => now ,
334- "value" => value . nil? ? nil : { "full_name" => value . respond_to? ( :full_name ) ? value . full_name : value . to_s } ,
333+ "value" => if value . nil?
334+ nil
335+ else
336+ { "full_name" => value . respond_to? ( :full_name ) ? value . full_name : value . to_s }
337+ end ,
335338 }
336339 end
337340
@@ -341,14 +344,19 @@ def save_api_cache!
341344
342345 users_data [ key . to_s ] = {
343346 "cached_at" => now ,
344- "value" => value . nil? ? nil : { "login" => value . respond_to? ( :login ) ? value . login : value . to_s } ,
347+ "value" => if value . nil?
348+ nil
349+ else
350+ { "login" => value . respond_to? ( :login ) ? value . login : value . to_s }
351+ end ,
345352 }
346353 end
347354
348355 File . write ( CACHE_FILE , JSON . pretty_generate ( { "repos" => repos_data , "users" => users_data } ) )
349- rescue StandardError => e
350- warn "Failed to save API cache: #{ e . message } "
356+ rescue StandardError => error
357+ warn "Failed to save API cache: #{ error . message } "
351358end
359+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
352360
353361# Load cached API results at startup
354362load_api_cache!
0 commit comments