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 10
def self.accept?(blob)
  false
end
new(blob) click to toggle source
# File lib/active_storage/analyzer.rb, line 14
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 19
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 25
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 29
def logger #:doc:
  ActiveStorage.logger
end
tmpdir() click to toggle source
# File lib/active_storage/analyzer.rb, line 33
def tmpdir #:doc:
  Dir.tmpdir
end