Sha256: 576e8ed02b48c0396c1b7aa1c0cf891d7df2e462f7a7b22e0d975a0c08c616eb

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

# Frozen-string-literal: true
# Copyright: 2012-2015 - MIT License
# Encoding: utf-8

autoload :FastImage, "fastimage"

module Jekyll
  module Assets
    module Liquid
      class Drop < ::Liquid::Drop
        extend Forwardable
        def initialize(path, jekyll)
          @path = path
          @jekyll = jekyll
          @asset = nil
        end

        def_delegator :asset, :logical_path
        def_delegator :asset, :content_type, :type
        def_delegator :asset, :content_type
        def_delegator :asset, :filename

        def basename
          File.basename(@path)
        end

        def width
          if image?
            dimensions.first
          end
        end

        def height
          if image?
            dimensions.last
          end
        end

        def dimensions
          if image?
            @dimensions ||= FastImage.new(asset.filename).size
          end
        end

        private
        def image?
          %W(image/png image/jpeg image/gif).include?(
            asset.content_type
          )
        end

        private
        def asset
          @asset ||= @jekyll.sprockets.find_asset(@path)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jekyll-assets-2.1.1 lib/jekyll/assets/liquid/drop.rb
jekyll-assets-2.1.0 lib/jekyll/assets/liquid/drop.rb