Class: Scan::ModelFile::ParseMetadataJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/scan/model_file/parse_metadata_job.rb

Instance Method Summary collapse

Instance Method Details

#image_metadata(file) ⇒ Object



21
22
23
24
25
# File 'app/jobs/scan/model_file/parse_metadata_job.rb', line 21

def (file)
  {
    previewable: true
  }
end

#model_metadata(file) ⇒ Object



27
28
29
30
31
# File 'app/jobs/scan/model_file/parse_metadata_job.rb', line 27

def (file)
  {
    presupported: presupported?(file)
  }
end

#perform(file_id) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/scan/model_file/parse_metadata_job.rb', line 5

def perform(file_id)
  file = ModelFile.find(file_id)
  # Refresh shrine metadata
  file.attachment_attacher.refresh_metadata!
  # Get metadata for specific types
  params = if file.is_image?
    (file)
  elsif file.is_3d_model?
    (file)
  end
  # Store updated data
  file.update!(params.compact) if params
  # Queue up deeper analysis job
  file.analyse_later
end

#presupported?(file) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'app/jobs/scan/model_file/parse_metadata_job.rb', line 33

def presupported?(file)
  elements = file.path_within_library.split(/[[:punct:]]|[[:space:]]/).map(&:downcase)
  elements.any? { ModelFile::SUPPORT_KEYWORDS.include?(it) }
end