Class: ImageThumbnails

Inherits:
Dropsite::DirRenderer show all
Defined in:
lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb

Constant Summary collapse

VALID_THUMBNAIL_EXTENSIONS =
%w[bmp gif jpeg jpg png tif tiff]

Constants inherited from Dropsite::DirRenderer

Dropsite::DirRenderer::TEMPLATE_EXTENSIONS

Instance Attribute Summary

Attributes inherited from Dropsite::DirRenderer

#assets_dir, #template_path

Instance Method Summary collapse

Methods inherited from Dropsite::DirRenderer

inherited, #plugin_assets_dir, #render, renderers

Instance Method Details

#built_in?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb', line 40

def built_in?
  true
end

#can_render?(site_dir) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
# File 'lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb', line 6

def can_render?(site_dir)
  return false if not thumbnail_generator
  !site_dir.files.empty? && site_dir.files.all? {|e| e.file_type == :image}
end

#thumbnail_generatorObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb', line 44

def thumbnail_generator
  return @thumbnail_generator_cache if instance_variables.include?('@thumbnail_generator_cache')

  begin
    require 'image_science'
    return @thumbnail_generator_cache = :image_science
  rescue LoadError
  end

  begin
    require 'rmagick'
    return @thumbnail_generator_cache = :rmagick
  rescue LoadError
  end

  return @thumbnail_generator_cache = nil
end

#write_page_assets(site_dir) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb', line 11

def write_page_assets(site_dir)
  raise 'No thumbnail generator' if not thumbnail_generator

  assets_dir = site_dir.page_assets_dir
  site_dir.entries.find_all {|e| e.is_a? SiteFile}.each do |e|
    src_image = e.abs_path
    case thumbnail_generator
    when :image_science
      begin
        write_thumb_with_image_science(src_image, assets_dir)
      rescue RuntimeError => e # I believe this is as specific as it gets
        site_dir.warning "Could not create thumbnail for #{src_image} with ImageScience, " +
          "a possible reason is that ImageScience cannot create thumbs for animated gifs" +
          "\nError message: #{e.message}"
        write_default_thumbnail(src_image, site_dir)
      end
    when :rmagick
       begin
         write_thumb_with_rmagick(src_image, assets_dir)
        rescue ImageMagickError => e
          site_dir.warning "Could not create thumbnail for #{src_image} with RMagick\n#{e.message}"
          write_default_thumbnail(src_image, assets_dir)
        end
    else
      site_dir.error "Unrecognized thumbnail generator: #{thumbnail_generator}"
    end
  end
end