Active Storage Analyzer
This is an abstract base class for analyzers, which extract metadata from blobs. See ActiveStorage::Analyzer::VideoAnalyzer for an example of a concrete subclass.
- CLASS ActiveStorage::Analyzer::AudioAnalyzer
- CLASS ActiveStorage::Analyzer::ImageAnalyzer
- CLASS ActiveStorage::Analyzer::VideoAnalyzer
- A
- D
- I
- L
- M
- N
- T
Attributes
| [R] | blob |
Class Public methods
accept?(blob) Link
Implement this method in a concrete subclass. Have it return true when given a blob from which the analyzer can extract metadata.
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 13 def self.accept?(blob) false end
analyze_later?() Link
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.
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 19 def self.analyze_later? true end
new(blob) Link
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 23 def initialize(blob) @blob = blob end
Instance Public methods
metadata() Link
Override this method in a concrete subclass. Have it return a Hash of metadata.
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 28 def metadata raise NotImplementedError end
Instance Private methods
download_blob_to_tempfile(&block) Link
Downloads the blob to a tempfile on disk. Yields the tempfile.
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 34 def download_blob_to_tempfile(&block) # :doc: blob.open tmpdir: tmpdir, &block end
instrument(analyzer, &block) Link
Source: show
# File activestorage/lib/active_storage/analyzer.rb, line 46 def instrument(analyzer, &block) # :doc: ActiveSupport::Notifications.instrument("analyze.active_storage", analyzer: analyzer, &block) end