On this page
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
Public Class Methods
# File activestorage/lib/active_storage/analyzer.rb, line 11
def self.accept?(blob)
false
end
Implement this method in a concrete subclass. Have it return true when given a blob from which the analyzer can extract metadata.
# File activestorage/lib/active_storage/analyzer.rb, line 17
def self.analyze_later?
true
end
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 activestorage/lib/active_storage/analyzer.rb, line 21
def initialize(blob)
@blob = blob
end
Public Instance Methods
# File activestorage/lib/active_storage/analyzer.rb, line 26
def metadata
raise NotImplementedError
end
Override this method in a concrete subclass. Have it return a Hash
of metadata.
Private Instance Methods
# File activestorage/lib/active_storage/analyzer.rb, line 32
def download_blob_to_tempfile(&block) #:doc:
blob.open tmpdir: tmpdir, &block
end
Downloads the blob to a tempfile on disk. Yields the tempfile.
# File activestorage/lib/active_storage/analyzer.rb, line 36
def logger #:doc:
ActiveStorage.logger
end
# File activestorage/lib/active_storage/analyzer.rb, line 40
def tmpdir #:doc:
Dir.tmpdir
end
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.