|
- class ContentGenerationJob < ApplicationJob
- require 'docsplit'
-
- @document_id = nil
-
- queue_as :default
-
- after_perform :generate_tags
-
- def perform(document_id)
- @document_id = document_id
- document = Document.find(document_id)
- Docsplit.extract_text(document.doc.path, output: 'tmp/raw_content')
- file_path = 'tmp/raw_content/' + File.basename(document.doc.path, 'pdf') + 'txt'
- text = IO.read(file_path)
-
- content = document.build_content(text: text)
- content.save!
-
- File.delete(file_path) if File.exist?(file_path)
- end
-
- private
- def generate_tags
- TagGenerationJob.perform_now @document_id
- end
- end
|