Module: PdfCover

Defined in:
lib/pdf_cover.rb,
lib/pdf_cover/version.rb,
lib/pdf_cover/converter.rb

Overview

This module provides methods for CarrierWave::Uploader::Base subclasses and for ActiveRecord models that want to include attachments to simplify the generation of JPEG images from the first page of a PDF file that is uploaded by the users. Include this module in your class and check the ‘ClassMethods` documentation that corresponds to your attachments managing library in this same file.

Defined Under Namespace

Modules: ClassMethods Classes: Converter

Constant Summary collapse

VERSION =
"0.3.2".freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



72
73
74
75
76
77
78
79
80
81
# File 'lib/pdf_cover.rb', line 72

def included(base)
  if carrierwave_defined?(base)
    base.extend ClassMethods::CarrierWave
  elsif paperclip_defined?
    require "paperclip/pdf_cover_processor"
    base.extend ClassMethods::Paperclip
  else
    fail "#{base} is not a CarrierWave::Uploader and Paperclip is not defined ¯\\_(ツ)_/¯"
  end
end

Instance Method Details

#enforce_content_type(content_type) ⇒ Object



101
102
103
# File 'lib/pdf_cover.rb', line 101

def enforce_content_type(content_type)
  file.content_type = content_type
end

#pdf_cover(quality, resolution) ⇒ Object

This is the method used by the CarrierWave processor mechanism



95
96
97
98
99
# File 'lib/pdf_cover.rb', line 95

def pdf_cover(quality, resolution)
  options = { quality: quality, resolution: resolution }.compact
  converted_file = PdfCover::Converter.new(file, options).converted_file
  FileUtils.cp(converted_file, current_path)
end