Class: Google::Apis::Core::DownloadCommand
- Inherits:
- 
      ApiCommand
      
        - Object
- HttpCommand
- ApiCommand
- Google::Apis::Core::DownloadCommand
 
- Defined in:
- lib/google/apis/core/download.rb
Overview
Streaming/resumable media download support
Constant Summary collapse
- RANGE_HEADER =
- 'Range'
- OK_STATUS =
- [200, 201, 206] 
Constants inherited from ApiCommand
ApiCommand::ERROR_REASON_MAPPING, ApiCommand::FIELDS_PARAM, ApiCommand::JSON_CONTENT_TYPE
Constants inherited from HttpCommand
Instance Attribute Summary collapse
- 
  
    
      #download_dest  ⇒ String, ... 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    File or IO to write content to. 
Attributes inherited from ApiCommand
#request_object, #request_representation, #response_class, #response_representation
Attributes inherited from HttpCommand
#body, #connection, #header, #method, #options, #params, #query, #url
Instance Method Summary collapse
- 
  
    
      #prepare!  
    
    
  
  
  
  
  
  
  
  
  
    Ensure the download destination is a writable stream. 
- 
  
    
      #release!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Close IO stream when command done. 
Methods inherited from ApiCommand
#allow_form_encoding?, #check_status, #decode_response_body
Methods inherited from HttpCommand
#allow_form_encoding?, #apply_request_options, #authorization_refreshable?, #check_status, #decode_response_body, #error, #execute, #initialize, #process_response, #success
Methods included from Logging
Constructor Details
This class inherits a constructor from Google::Apis::Core::HttpCommand
Instance Attribute Details
#download_dest ⇒ String, ...
File or IO to write content to
| 29 30 31 | # File 'lib/google/apis/core/download.rb', line 29 def download_dest @download_dest end | 
Instance Method Details
#prepare!
This method returns an undefined value.
Ensure the download destination is a writable stream.
| 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | # File 'lib/google/apis/core/download.rb', line 34 def prepare! @state = :start @download_url = nil @offset = 0 if download_dest.respond_to?(:write) @download_io = download_dest @close_io_on_finish = false elsif download_dest.is_a?(String) @download_io = File.open(download_dest, 'wb') @close_io_on_finish = true else @download_io = StringIO.new('', 'wb') @close_io_on_finish = false end super end | 
#release! ⇒ Object
Close IO stream when command done. Only closes the stream if it was opened by the command.
| 52 53 54 | # File 'lib/google/apis/core/download.rb', line 52 def release! @download_io.close if @close_io_on_finish end |