Class: Paperclip::Vips
- Inherits:
-
Processor
- Object
- Processor
- Paperclip::Vips
- Defined in:
- lib/paperclip-vips/paperclip/vips.rb
Instance Attribute Summary collapse
-
#auto_orient ⇒ Object
Returns the value of attribute auto_orient.
-
#convert_options ⇒ Object
Returns the value of attribute convert_options.
-
#current_geometry ⇒ Object
Returns the value of attribute current_geometry.
-
#format ⇒ Object
Returns the value of attribute format.
-
#source_file_options ⇒ Object
Returns the value of attribute source_file_options.
-
#target_geometry ⇒ Object
Returns the value of attribute target_geometry.
-
#whiny ⇒ Object
Returns the value of attribute whiny.
Instance Method Summary collapse
-
#initialize(file, options = {}, attachment = nil) ⇒ Vips
constructor
A new instance of Vips.
- #make ⇒ Object
Constructor Details
#initialize(file, options = {}, attachment = nil) ⇒ Vips
Returns a new instance of Vips.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 6 def initialize(file, = {}, = nil) super geometry = [:geometry].to_s @should_crop = geometry[-1,1] == '#' @target_geometry = .fetch(:string_geometry_parser, Geometry).parse(geometry) @current_geometry = .fetch(:file_geometry_parser, Geometry).from_file(@file) @whiny = .fetch(:whiny, true) @auto_orient = .fetch(:auto_orient, true) @convert_options = [:convert_options] @current_format = current_format(file).downcase @format = [:format] || @current_format @basename = File.basename(@file.path, @current_format) end |
Instance Attribute Details
#auto_orient ⇒ Object
Returns the value of attribute auto_orient.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def auto_orient @auto_orient end |
#convert_options ⇒ Object
Returns the value of attribute convert_options.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def @convert_options end |
#current_geometry ⇒ Object
Returns the value of attribute current_geometry.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def current_geometry @current_geometry end |
#format ⇒ Object
Returns the value of attribute format.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def format @format end |
#source_file_options ⇒ Object
Returns the value of attribute source_file_options.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def @source_file_options end |
#target_geometry ⇒ Object
Returns the value of attribute target_geometry.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def target_geometry @target_geometry end |
#whiny ⇒ Object
Returns the value of attribute whiny.
3 4 5 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 3 def whiny @whiny end |
Instance Method Details
#make ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/paperclip-vips/paperclip/vips.rb', line 24 def make source = @file filename = [@basename, @format ? ".#{@format}" : ""].join destination = TempfileFactory.new.generate(filename) begin thumbnail = ::Vips::Image.thumbnail(source.path, width, { height: crop ? height : nil, crop: crop }) if @target_geometry thumbnail = ::Vips::Image.new_from_file(source.path) if !defined?(thumbnail) || thumbnail.nil? thumbnail = (thumbnail) save_thumbnail(thumbnail, destination.path) rescue => e if @whiny = "There was an error processing the thumbnail for #{@basename}:\n" + e. raise Paperclip::Error, end end return destination end |