og_pilot_ruby 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cfefae49c597192416e12b3ce37cbeb6c9a96978cd0117544cab4ed3d334d754
4
- data.tar.gz: 1ad8da7a1af0b52c0a039fce941d5e35c0718317586fbe694b537886c6e7e14d
3
+ metadata.gz: 7378c97e45ba7c02d8f8895b53614583443c0d393d56e0c8f4267941a65012d1
4
+ data.tar.gz: ec37c266916a73ce5610d7a9a74137bd1771dddf9f368db910c2d8f36880a1e9
5
5
  SHA512:
6
- metadata.gz: 3c43d41211ef1bbe5685565ce341adea1c9e56b8007e322c37a7561ee5b068ba944176826a7455546ec6580b53b3a8b3f640064ad30dada66a25df1035230f1a
7
- data.tar.gz: 8967f05bb0129386f0b8397f401918ccecc54127a6f939066615a960fa98433e3863579bfc59b926373631b0d0513624c8fff68a3715c8fff0192d464a8b5f90
6
+ metadata.gz: b12fee2e4b63b2eb78942dfa301c7fdeaa44c205dacac2e505c05720370be0ca33da85ddcad5af19d64c9accca72098bc17942bb581ecc6492e14ca06d064fa1
7
+ data.tar.gz: ceb27ff2523496441e15247740db9dbb446fe59aebfe242f3f81b127e033bb66b57e0f774a9e7f3d549c000c8066d3ea1f509267ce3ed9bdf2d0d10a4eb96784
@@ -38,7 +38,8 @@ module OgPilotRuby
38
38
  result = if json
39
39
  JSON.parse(response.body)
40
40
  else
41
- response["Location"] || final_uri.to_s
41
+ url = response["Location"] || final_uri.to_s
42
+ status_placeholder?(url) ? nil : url
42
43
  end
43
44
 
44
45
  write_cached(cache_key, result, iat:) if config.cache_store && cache_key && result
@@ -102,6 +103,11 @@ module OgPilotRuby
102
103
  if response.is_a?(Net::HTTPRedirection)
103
104
  location = response["Location"]
104
105
  if location && !location.empty?
106
+ # Status placeholders (processing/failed) mean the image isn't ready yet.
107
+ # Return the redirect response as-is so the caller can detect this and
108
+ # avoid caching a temporary placeholder URL.
109
+ return [response, URI.join(uri.to_s, location)] if status_placeholder?(location)
110
+
105
111
  raise OgPilotRuby::RequestError, "OG Pilot request failed with too many redirects" if redirects_left <= 0
106
112
 
107
113
  redirect_uri = URI.join(uri.to_s, location)
@@ -131,6 +137,10 @@ module OgPilotRuby
131
137
  raise OgPilotRuby::RequestError, "OG Pilot request failed with unauthorized: #{e.message}"
132
138
  end
133
139
 
140
+ def status_placeholder?(url)
141
+ url.to_s.match?(%r{/status/(?:processing|failed)\.(?:jpg|png)\z})
142
+ end
143
+
134
144
  def build_http_request(method, uri)
135
145
  case method
136
146
  when :post
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OgPilotRuby
4
- VERSION = "0.4.6"
4
+ VERSION = "0.4.7"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: og_pilot_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunergos IT LLC