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.



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

def initialize(url)
  self.url = url
end

Instance Attribute Details

#urlObject

Returns the value of attribute url.



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

def url
  @url
end

Class Method Details

.find(params) ⇒ Object



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

def self.find(params)
  Picturesque.config.find.call(params)
end

Instance Method Details

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



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

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