1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activestorage/lib/active_storage/analyzer.rb
George Claghorn 609dbb84c3 Expose ActiveStorage::Analyzer#logger in API docs [ci skip]
Clarify that it's public API and may be used in third-party analyzers.
2017-12-31 13:16:21 -05:00

33 lines
798 B
Ruby

# 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 #:doc:
ActiveStorage.logger
end
end
end