Skip to content

Commit ba1b294

Browse files
committed
Address review feedback on cache persistence
1 parent fa0901c commit ba1b294

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

test/test_helper.rb

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,10 @@ def add_message(type, file, line_number, message)
270270
client.messages << "::#{type} file=#{file},line=#{line_number}::#{message}"
271271
end
272272

273-
CACHE_FILE = File.expand_path("../.api-cache.json", File.dirname(__FILE__))
273+
CACHE_FILE = File.expand_path("../.api-cache.json", __dir__)
274274
CACHE_TTL_SECONDS = 24 * 60 * 60 # 24 hours
275275

276-
def self.load_api_cache!
276+
def load_api_cache!
277277
return unless File.exist?(CACHE_FILE)
278278

279279
data = JSON.parse(File.read(CACHE_FILE))
@@ -282,13 +282,17 @@ def self.load_api_cache!
282282

283283
if data["repos"]
284284
data["repos"].each do |key, entry|
285-
next if now - entry["cached_at"].to_i > ttl
285+
cached_at = entry["cached_at"]
286+
next unless cached_at
287+
next if now - cached_at.to_i > ttl
286288

287289
result = entry["value"]
288290
# Reconstruct a minimal object that responds to .full_name
289291
cached = if result.nil?
290292
nil
291293
else
294+
next unless result["full_name"]
295+
292296
Struct.new(:full_name).new(result["full_name"])
293297
end
294298
NewOctokit.class_variable_get(:@@repos)[key] = cached
@@ -297,12 +301,16 @@ def self.load_api_cache!
297301

298302
if data["users"]
299303
data["users"].each do |key, entry|
300-
next if now - entry["cached_at"].to_i > ttl
304+
cached_at = entry["cached_at"]
305+
next unless cached_at
306+
next if now - cached_at.to_i > ttl
301307

302308
result = entry["value"]
303309
cached = if result.nil?
304310
nil
305311
else
312+
next unless result["login"]
313+
306314
Struct.new(:login).new(result["login"])
307315
end
308316
NewOctokit.class_variable_get(:@@users)[key] = cached
@@ -312,13 +320,14 @@ def self.load_api_cache!
312320
warn "Failed to load API cache: #{e.message}"
313321
end
314322

315-
def self.save_api_cache!
323+
def save_api_cache!
316324
now = Time.now.to_i
317325
repos_data = {}
318326
users_data = {}
319327

320328
NewOctokit.class_variable_get(:@@repos).each do |key, value|
321329
next if key == :skip_requests
330+
next if value == true
322331

323332
repos_data[key.to_s] = {
324333
"cached_at" => now,
@@ -328,6 +337,7 @@ def self.save_api_cache!
328337

329338
NewOctokit.class_variable_get(:@@users).each do |key, value|
330339
next if key == :skip_requests
340+
next if value == true
331341

332342
users_data[key.to_s] = {
333343
"cached_at" => now,

0 commit comments

Comments
 (0)