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