class ActiveStorage::Analyzer
This is an abstract base class for analyzers, which extract metadata from blobs. See ActiveStorage::Analyzer::ImageAnalyzer
for an example of a concrete subclass.
Attributes
blob[R]
Public Class Methods
accept?(blob)
click to toggle source
Implement this method in a concrete subclass. Have it return true when given a blob from which the analyzer can extract metadata.
# File lib/active_storage/analyzer.rb, line 11 def self.accept?(blob) false end
analyze_later?()
click to toggle source
Implement this method in concrete subclasses. It will determine if blob analysis should be done in a job or performed inline. By default, analysis is enqueued in a job.
# File lib/active_storage/analyzer.rb, line 17 def self.analyze_later? true end
new(blob)
click to toggle source
# File lib/active_storage/analyzer.rb, line 21 def initialize(blob) @blob = blob end
Public Instance Methods
metadata()
click to toggle source
Override this method in a concrete subclass. Have it return a Hash of metadata.
# File lib/active_storage/analyzer.rb, line 26 def metadata raise NotImplementedError end
Private Instance Methods
download_blob_to_tempfile(&block)
click to toggle source
Downloads the blob to a tempfile on disk. Yields the tempfile.
# File lib/active_storage/analyzer.rb, line 32 def download_blob_to_tempfile(&block) #:doc: blob.open tmpdir: tmpdir, &block end
logger()
click to toggle source
# File lib/active_storage/analyzer.rb, line 36 def logger #:doc: ActiveStorage.logger end
tmpdir()
click to toggle source
# File lib/active_storage/analyzer.rb, line 40 def tmpdir #:doc: Dir.tmpdir end