Class: FileProcessor
- Inherits:
 - 
      Object
      
        
- Object
 - FileProcessor
 
 
- Defined in:
 - lib/file_processor.rb
 
Overview
Process the incorporation of a file to Buhos Could handle upload files, and other types of files
Defined Under Namespace
Classes: NoUploadedFilesType
Instance Attribute Summary collapse
- 
  
    
      #basedir  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute basedir.
 - 
  
    
      #file_id  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute file_id.
 - 
  
    
      #filename  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute filename.
 - 
  
    
      #filepath  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute filepath.
 - 
  
    
      #filetype  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute filetype.
 
Instance Method Summary collapse
- #add_to_cd(cd) ⇒ Object
 - #add_to_record_search(search, record) ⇒ Object
 - #add_to_sr(systematic_review) ⇒ Object
 - 
  
    
      #initialize(file, basedir = nil)  ⇒ FileProcessor 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of FileProcessor.
 
Constructor Details
#initialize(file, basedir = nil) ⇒ FileProcessor
Returns a new instance of FileProcessor.
      41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64  | 
    
      # File 'lib/file_processor.rb', line 41 def initialize(file,basedir=nil) @basedir=basedir @filetype="application/octet-stream" @file_id=nil if file.is_a? String and File.exist? file # Ok, is a filepath require 'mimemagic' @filetype=MimeMagic.by_magic(File.open(file)).type @filename=File.basename(file) @filepath=file elsif file.respond_to?("[]") and !file[:tempfile].nil? # Is uploaded @filetype=file[:type] @filename=file[:filename] @filepath=file[:tempfile] elsif file.is_a? IFile @filetype=file[:typetype] @filename=file[:filename] @filepath="#{basedir}/#{file[:file_path]}" @file_id=file[:id] else raise "I don't know what type of file is it" end create_file_on_system unless @file_id @filename=@filename.gsub(/[^A-Za-z0-9\.-_]/,"") end  | 
  
Instance Attribute Details
#basedir ⇒ Object (readonly)
Returns the value of attribute basedir.
      36 37 38  | 
    
      # File 'lib/file_processor.rb', line 36 def basedir @basedir end  | 
  
#file_id ⇒ Object (readonly)
Returns the value of attribute file_id.
      35 36 37  | 
    
      # File 'lib/file_processor.rb', line 35 def file_id @file_id end  | 
  
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
      33 34 35  | 
    
      # File 'lib/file_processor.rb', line 33 def filename @filename end  | 
  
#filepath ⇒ Object (readonly)
Returns the value of attribute filepath.
      34 35 36  | 
    
      # File 'lib/file_processor.rb', line 34 def filepath @filepath end  | 
  
#filetype ⇒ Object (readonly)
Returns the value of attribute filetype.
      32 33 34  | 
    
      # File 'lib/file_processor.rb', line 32 def filetype @filetype end  | 
  
Instance Method Details
#add_to_cd(cd) ⇒ Object
      77 78 79 80 81 82 83 84  | 
    
      # File 'lib/file_processor.rb', line 77 def add_to_cd(cd) $db.transaction do archivo_cd_o=FileCd.where(:file_id=>file_id, :canonical_document_id=>cd[:id]) if archivo_cd_o.empty? FileCd.insert(:file_id=>file_id, :canonical_document_id=>cd[:id]) end end end  | 
  
#add_to_record_search(search, record) ⇒ Object
      86 87 88 89 90 91 92 93 94  | 
    
      # File 'lib/file_processor.rb', line 86 def add_to_record_search(search,record) $db.transaction do raise NoUploadedFilesType, "Search should be uploaded_files type" unless search.is_type?(:uploaded_files) rec_sec=RecordsSearch[:record_id=>record[:id], :search_id=>search[:id]] if rec_sec rec_sec.update(:file_id=>file_id) end end end  | 
  
#add_to_sr(systematic_review) ⇒ Object
      68 69 70 71 72 73 74 75  | 
    
      # File 'lib/file_processor.rb', line 68 def add_to_sr(systematic_review) $db.transaction do archivo_rs_o=FileSr.where(:file_id=>file_id,:systematic_review_id=>systematic_review[:id]) if archivo_rs_o.empty? FileSr.insert(:file_id=>file_id,:systematic_review_id=>systematic_review[:id]) end end end  |