Sha256: 81d4bc0a06291316185e212122aa200def83b9b1e25575bc5ede024337afbf72

Contents?: true

Size: 812 Bytes

Versions: 4

Compression:

Stored size: 812 Bytes

Contents

require 'cgi'

require 'murlsh'

module Murlsh

  # If the user has supplied a thumbnail url, adjust size and store it locally.
  class AddPre45SuppliedThumbnail < Plugin

    @hook = 'add_pre'

    StorageDir = File.join(File.dirname(__FILE__), '..', 'public', 'img',
      'thumb')

    def self.run(url, config)
      if url.thumbnail_url
        Murlsh::failproof do
          thumb_storage = Murlsh::ImgStore.new(StorageDir,
            :user_agent => config['user_agent'])

          stored_filename = thumb_storage.store_url(url.thumbnail_url) do |i|
            max_side = config.fetch('thumbnail_max_side', 90)
            i.extend(Murlsh::ImageList).resize_down!(max_side)
          end
          url.thumbnail_url = "img/thumb/#{CGI.escape(stored_filename)}"
        end
      end
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
murlsh-1.4.1 plugins/add_pre_45_supplied_thumbnail.rb
murlsh-1.4.0 plugins/add_pre_45_supplied_thumbnail.rb
murlsh-1.3.1 plugins/add_pre_45_supplied_thumbnail.rb
murlsh-1.3.0 plugins/add_pre_45_supplied_thumbnail.rb