master
1class Version
2 attr_reader :key, :prefix, :photo
3
4 def initialize(photo, key, prefix)
5 @key = key
6 @prefix = prefix
7 @photo = photo
8 end
9
10 def adjust(_image)
11 fail "Please override with version specific behaviours"
12 end
13
14 def for?(other_key)
15 key == other_key
16 end
17
18 def url_for(asset_host)
19 if photo.is_processed?
20 "#{asset_host}/#{blob_key}"
21 else
22 ActionController::Base.helpers.asset_path(
23 "#{key}_default.png",
24 skip_pipeline: true
25 )
26 end
27 end
28
29 def blob_key
30 "uploads/photo/image/#{photo.id}/#{prefix}#{photo.image}"
31 end
32
33 def download(blob_storage)
34 blob_storage.download(blob_key) do |file|
35 yield file
36 end
37 end
38end