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