Class: ActiveStorageValidations::Metadata
- Inherits:
-
Object
- Object
- ActiveStorageValidations::Metadata
show all
- Defined in:
- lib/active_storage_validations/metadata.rb
Defined Under Namespace
Classes: InvalidImageError
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(file) ⇒ Metadata
Returns a new instance of Metadata.
7
8
9
10
|
# File 'lib/active_storage_validations/metadata.rb', line 7
def initialize(file)
require_image_processor
@file = file
end
|
Instance Attribute Details
#file ⇒ Object
Returns the value of attribute file.
5
6
7
|
# File 'lib/active_storage_validations/metadata.rb', line 5
def file
@file
end
|
Instance Method Details
#exception_class ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/active_storage_validations/metadata.rb', line 16
def exception_class
if image_processor == :vips && defined?(Vips)
Vips::Error
elsif defined?(MiniMagick)
MiniMagick::Error
end
end
|
#image_processor ⇒ Object
12
13
14
|
# File 'lib/active_storage_validations/metadata.rb', line 12
def image_processor
Rails.application.config.active_storage.variant_processor
end
|
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/active_storage_validations/metadata.rb', line 32
def metadata
read_image do |image|
if rotated_image?(image)
{ width: image.height, height: image.width }
else
{ width: image.width, height: image.height }
end
end
rescue InvalidImageError
logger.info "Skipping image analysis because ImageMagick or Vips doesn't support the file"
{}
end
|
#require_image_processor ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/active_storage_validations/metadata.rb', line 24
def require_image_processor
if image_processor == :vips
require 'vips' unless defined?(Vips)
else
require 'mini_magick' unless defined?(MiniMagick)
end
end
|
#valid? ⇒ Boolean
45
46
47
48
49
50
|
# File 'lib/active_storage_validations/metadata.rb', line 45
def valid?
read_image
true
rescue InvalidImageError
false
end
|