blob: 837785a12b5d6b6f6767871056319d5ac036f4b6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# frozen_string_literal: true
require "active_storage/downloading"
module ActiveStorage
# This is an abstract base class for analyzers, which extract metadata from blobs. See
# ActiveStorage::Analyzer::ImageAnalyzer for an example of a concrete subclass.
class Analyzer
include Downloading
attr_reader :blob
# Implement this method in a concrete subclass. Have it return true when given a blob from which
# the analyzer can extract metadata.
def self.accept?(blob)
false
end
def initialize(blob)
@blob = blob
end
# Override this method in a concrete subclass. Have it return a Hash of metadata.
def metadata
raise NotImplementedError
end
private
def logger
ActiveStorage.logger
end
end
end
|