Sha256: 03cbf9ab28e833d60e185dfb166130e3fe47cbcce206bbb197ee72f96eaee948

Contents?: true

Size: 1.3 KB

Versions: 16

Compression:

Stored size: 1.3 KB

Contents

module Scrivito

class BinaryRouting < Struct.new(:request, :scrivito_engine)
  def binary_url(binary)
    binary_url_from_cache(binary) || binary_redirect_url(binary)
  end

  def binary_obj_url(obj, binary, image_options = {})
    binary = if image_options.key?(:transform)
      apply_custom_transformation(binary, image_options[:transform])
    else
      apply_default_transformation(binary, obj)
    end
    binary_url(binary)
  end

  def resolved_binary_obj_url(obj, binary)
    apply_default_transformation(binary, obj).url
  end

  private

  def binary_url_from_cache(binary)
    if url_from_cache = binary.url_from_cache
      BinaryRewrite.call(request, url_from_cache)
    end
  end

  def binary_redirect_url(binary)
    encrypted_params = BinaryParamVerifier.generate(binary)
    scrivito_engine.binary_path(encrypted_params: encrypted_params)
  end

  def apply_custom_transformation(binary, transformation_definition)
    if transformation_definition
      binary.transform(transformation_definition)
    else
      binary
    end
  end

  def apply_default_transformation(binary, obj)
    if (transformation_definition = Scrivito::Configuration.default_image_transformation) &&
        obj.apply_image_transformation?
      binary.transform(transformation_definition)
    else
      binary
    end
  end
end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
scrivito_sdk-1.8.1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.8.1.rc1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.8.0 lib/scrivito/binary_routing.rb
scrivito_sdk-1.8.0.rc2 lib/scrivito/binary_routing.rb
scrivito_sdk-1.8.0.rc1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.7.0 lib/scrivito/binary_routing.rb
scrivito_sdk-1.7.0.rc2 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.1.rc1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.7.0.rc1 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0.rc5 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0.rc4 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0.rc3 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0.rc2 lib/scrivito/binary_routing.rb
scrivito_sdk-1.6.0.rc1 lib/scrivito/binary_routing.rb