Class: Plugin::Thumbnailer::Service::Thumbnail

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
ClassLogging, PerfStats, MimeType
Defined in:
lib/httpthumbnailer/plugin/thumbnailer/service/images.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MimeType

#mime_type

Constructor Details

#initialize(image, format, options = {}) ⇒ Thumbnail

Returns a new instance of Thumbnail.



245
246
247
248
249
250
251
252
253
254
255
# File 'lib/httpthumbnailer/plugin/thumbnailer/service/images.rb', line 245

def initialize(image, format, options = {})
	@image = image
	@format = format

	@quality = (options['quality'] or default_quality(format))
	@quality &&= @quality.to_i

	@interlace = (options['interlace'] or 'NoInterlace')
	fail "unsupported interlace: #{@interlace}" unless Magick::InterlaceType.values.map(&:to_s).include? @interlace
	@interlace = Magick.const_get @interlace.to_sym
end

Instance Attribute Details

#formatObject (readonly)

Returns the value of attribute format.



257
258
259
# File 'lib/httpthumbnailer/plugin/thumbnailer/service/images.rb', line 257

def format
  @format
end

Instance Method Details

#dataObject

def_delegators :@image, :format



262
263
264
265
266
267
268
269
270
271
272
273
274
275
# File 'lib/httpthumbnailer/plugin/thumbnailer/service/images.rb', line 262

def data
	# export class variables to local scope
	format = @format
	quality = @quality
	interlace = @interlace

	measure "to blob", "#{@format} (quality: #{@quality} interlace: #{@interlace})" do
		@image.to_blob do
			self.format = format
			self.quality = quality if quality
			self.interlace = interlace
		end
	end
end