summaryrefslogtreecommitdiff
path: root/app/models/version.rb
blob: f15676a4011dd49e6ed2e7c2bfb8b66f623a6ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Version
  attr_reader :key, :prefix, :photo

  def initialize(photo, key, prefix)
    @key = key
    @prefix = prefix
    @photo = photo
  end

  def adjust(_image)
    fail "Please override with version specific behaviours"
  end

  def for?(other_key)
    key == other_key
  end

  def url_for(asset_host)
    if photo.is_processed?
      "#{asset_host}/#{blob_key}"
    else
      ActionController::Base.helpers.asset_path(
        "#{key}_default.png",
        skip_pipeline: true
      )
    end
  end

  def blob_key
    "uploads/photo/image/#{photo.id}/#{prefix}#{photo.image}"
  end

  def download(blob_storage)
    blob_storage.download(blob_key) do |file|
      yield file
    end
  end
end