Sha256: 91c0021a4d8ad82390a3ae5abcc5324b5a6f4a1e00dfba1788886b5b955a1ae0

Contents?: true

Size: 1018 Bytes

Versions: 2

Compression:

Stored size: 1018 Bytes

Contents

module MobileWorkflow
  module Attachable
    extend ActiveSupport::Concern
    include Rails.application.routes.url_helpers

    def preview_url(attachment, options: { resize_to_fill: [200, 200] })
      return nil unless attachment.attached?

      if attachment.image?
        rails_representation_url(attachment.variant(options), host: heroku_attachment_host)
      elsif attachment.previewable?
        rails_representation_url(attachment.preview(options), host: heroku_attachment_host)
      else
        return nil
      end
    end

    def attachment_url(attachment)
      return nil unless attachment.attached?

      rails_blob_url(attachment, host: attachment_host)
    end

    private

    def attachment_host
      ENV.fetch('ATTACHMENTS_HOST', heroku_attachment_host)
    end

    def heroku_attachment_host
      # TODO: MBS - move this to a configuration property
      app_name = Rails.env.test? ? 'test-app' : ENV.fetch('HEROKU_APP_NAME')
      "https://#{app_name}.herokuapp.com"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mobile_workflow-0.10.2 app/models/concerns/mobile_workflow/attachable.rb
mobile_workflow-0.10.1 app/models/concerns/mobile_workflow/attachable.rb