Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. # app/model/image.rb
  2. def image_link(name_of_image)
  3. if File.exist? "/some/#{name_of_image}.jpg"
  4. path = "/some/#{name_of_image}.jpg"
  5. else
  6. external_image_link = external_api_call(name_of_image)
  7. DownloadImageWorker.perform_async(external_image_link) // perform it asynchronously
  8. external_image_link
  9. end
  10.  
  11. photo = Photo.find_or_initialize_by(external_url: image_url)
  12. img_responce = Faraday.get do |req|
  13. req.url image_url
  14. if photo.etag
  15. req.headers['If-None-Match'] = photo.etag
  16. end
  17. end
  18.  
  19. case img_responce.status
  20. when 200
  21. # This mean, image changes (or new)
  22. photo.update external_url: image_url,
  23. etag: img_responce.headers['etag'],
  24. image: StringIO.new(img_responce.body)
  25. when 304
  26. # This mean, image doesn't change
  27. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement