Sha256: e99365b5e1900c42b296ecffe52f7a7b94989959d9abccd9520cf1d224b249cf

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

require_relative 'resource'
require_relative 'resource/asset_fields'

module Contentful
  # Resource class for Asset.
  # https://www.contentful.com/developers/documentation/content-delivery-api/#assets
  class Asset
    include Contentful::Resource
    include Contentful::Resource::SystemProperties
    include Contentful::Resource::AssetFields

    # Returns the image url of an asset
    # Allows you to pass in the following options for image resizing:
    #   :width
    #   :height
    #   :format
    #   :quality
    # See https://www.contentful.com/developers/documentation/content-delivery-api/#image-asset-resizing
    def image_url(options = {})
      query = {
        w:   options[:w]  || options[:width],
        h:   options[:h]  || options[:height],
        fm:  options[:fm] || options[:format],
        q:   options[:q]  || options[:quality],
        f:   options[:f]  || options[:focus],
        fit: options[:fit]
      }.reject { |_k, v| v.nil? }

      if query.empty?
        file.url
      else
        "#{file.url}?#{URI.encode_www_form(query)}"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
contentful-0.8.0 lib/contentful/asset.rb
contentful-0.7.0 lib/contentful/asset.rb
contentful-0.6.0 lib/contentful/asset.rb
contentful-0.5.0 lib/contentful/asset.rb