Class: Picturesque::Image

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model
Defined in:
app/models/picturesque/image.rb

Defined Under Namespace

Modules: Format, Quality

Constant Summary collapse

DISPOSITION =
"inline".freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Image

Returns a new instance of Image.



20
21
22
# File 'app/models/picturesque/image.rb', line 20

def initialize(url)
  self.url = url
end

Instance Attribute Details

#urlObject

Returns the value of attribute url.



18
19
20
# File 'app/models/picturesque/image.rb', line 18

def url
  @url
end

Class Method Details

.find(id) ⇒ Object



39
40
41
# File 'app/models/picturesque/image.rb', line 39

def self.find(id)
  new(Picturesque.config.url.call(id))
end

Instance Method Details

#process(size: nil, quality: nil, format: nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/models/picturesque/image.rb', line 24

def process(size: nil, quality: nil, format: nil)
  MiniMagick::Image.open(self.url).format(format || Format::JPG) do |file|
    file.quality(quality || Quality::HIGH)

    if size
      w,h = size.split("x")
      if w && Integer(w) > 0 && h && Integer(h) > 0
        file.resize("#{w}x#{h}^")
        file.gravity "center"
        file.extent "#{w}x#{h}"
      end
    end
  end
end