Spec-Zone.ru › Ruby on Rails 5.2

модуль ActiveStorage::Blob::Analyzable

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

analyze() Показать исходный код
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 28
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 36
def analyze_later
  ActiveStorage::AnalyzeJob.perform_later(self)
end

Очередь ActiveStorage::AnalyzeJob, который вызывает analyze.

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

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

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

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

Spec-Zone.ru

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