Sha256: b63e709e8ce2385f89945526cad23a1b9b4242680b2f681ccb16409fdd8fac86

Contents?: true

Size: 798 Bytes

Versions: 30

Compression:

Stored size: 798 Bytes

Contents

# 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

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
activestorage-5.2.8.1 lib/active_storage/analyzer.rb
activestorage-5.2.8 lib/active_storage/analyzer.rb
activestorage-5.2.7.1 lib/active_storage/analyzer.rb
activestorage-5.2.7 lib/active_storage/analyzer.rb
activestorage-5.2.6.3 lib/active_storage/analyzer.rb
activestorage-5.2.6.2 lib/active_storage/analyzer.rb
activestorage-5.2.6.1 lib/active_storage/analyzer.rb
activestorage-5.2.6 lib/active_storage/analyzer.rb
activestorage-5.2.4.6 lib/active_storage/analyzer.rb
activestorage-5.2.5 lib/active_storage/analyzer.rb
activestorage-5.2.4.5 lib/active_storage/analyzer.rb
activestorage-5.2.4.4 lib/active_storage/analyzer.rb
activestorage-5.2.4.3 lib/active_storage/analyzer.rb
activestorage-5.2.4.2 lib/active_storage/analyzer.rb
activestorage-5.2.4.1 lib/active_storage/analyzer.rb
activestorage-5.2.4 lib/active_storage/analyzer.rb
activestorage-5.2.4.rc1 lib/active_storage/analyzer.rb
spiral_form-0.1.1 vendor/bundle/gems/activestorage-5.2.3/lib/active_storage/analyzer.rb
spiral_form-0.1.0 vendor/bundle/gems/activestorage-5.2.3/lib/active_storage/analyzer.rb
activestorage-5.2.3 lib/active_storage/analyzer.rb