Spec-Zone.ru › Ruby on Rails 7.2

module ActiveStorage::Blob::Analyzable

Active Storage Blob Analyzable

Публичные методы экземпляров

analyze() Показать исходный код
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 29
def analyze
  update! metadata: metadata.merge(extract_metadata_via_analyzer)
end

Извлекает и сохраняет метаданные из файла, связанного с этим блобом, с помощью соответствующего анализатора. Active Storage имеет встроенные анализаторы для изображений и видео. См. ActiveStorage::Analyzer::ImageAnalyzer и ActiveStorage::Analyzer::VideoAnalyzer для получения информации о специфических атрибутах, которые они извлекают, и сторонних библиотеках, которые они требуют.

Для выбора анализатора для блока Active Storage вызывает accept? для каждого зарегистрированного анализатора в порядке. Он использует первого анализатора, для которого accept? возвращает true при передаче блока. Если ни один зарегистрированный анализатор не принимает блок, метаданные из него не извлекаются.

В приложении Rails добавьте или удалите анализаторы, манипулируя Rails.application.config.active_storage.analyzers в файле инициализации:

# Add a custom analyzer for Microsoft Office documents:
Rails.application.config.active_storage.analyzers.append DOCXAnalyzer

# Remove the built-in video analyzer:
Rails.application.config.active_storage.analyzers.delete ActiveStorage::Analyzer::VideoAnalyzer

Вне приложения Rails, манипулируйте ActiveStorage.analyzers вместо этого.

Обычно вам не нужно вызывать этот метод из приложения Rails. Новые блоки автоматически и асинхронно анализируются через analyze_later при их первом присоединении.

analyze_later() Показать исходный код
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 37
def analyze_later
  if analyzer_class.analyze_later?
    ActiveStorage::AnalyzeJob.perform_later(self)
  else
    analyze
  end
end

Очередирует ActiveStorage::AnalyzeJob, который вызывает analyze, или вызывает analyze inline в зависимости от конфигурации класса анализатора.

Этот метод автоматически вызывается для блока при его первом присоединении. Вы можете вызвать его, чтобы повторно проанализировать блок (например, если вы добавили новый анализатор или изменили существующий).

analyzed?() Показать исходный код
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 46
def analyzed?
  analyzed
end

Возвращает true, если блок был проанализирован.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API