Skip to content

Latest commit

 

History

History
41 lines (35 loc) · 946 Bytes

included.md

File metadata and controls

41 lines (35 loc) · 946 Bytes
title
Included

The included plugin allows you to hook up to the .included hook of the attachment module, and call additional methods on the model that includes it.

class ImageUploader < Shrine
  plugin :included do |name|
    # called when attachment module is included into a model

    self #=> Photo (the model class)
    name #=> :image
  end
end
class Photo
  include ImageUploader::Attachment(:image) # triggers the included block
end

For example, you can use it to define additional methods on the model:

class ImageUploader < Shrine
  plugin :included do |name|
    define_method(:"#{name}_width")  { send(name)&.width  }
    define_method(:"#{name}_height") { send(name)&.height }
  end
end
photo = Photo.new(image: file)
photo.image_width  #=> 1200
photo.image_height #=> 800