def granulate(options = {})
      @request_data = Hash.new
      if options[:doc_link]
        insert_download_data options
      else
        file_data = {:doc => options[:file], :filename => options[:filename]}
        @request_data.merge! file_data
      end
      insert_callback_data options
      request = prepare_request :POST, @request_data.to_json
      execute_request(request)
    end
def granulate(options = {})
      @request_data = Hash.new
      if options[:doc_link]
        insert_download_data options
      else
        file_data = {:doc => options[:file], :filename => options[:filename]}
        @request_data.merge! file_data
      end
      insert_callback_data options
      request = prepare_request :POST, @request_data.to_json
      execute_request(request)
    end
Send a document be granulated by a nsi.cloudooo node

 @param [Hash] options used to send a document to be graulated
 @option options [String] file the base64 encoded file to be granulated
 @option options [String] filename the filename of the document
 @note the filename is very importante, the cloudooo node will convert the document based on its filename, if necessary
 @option options [String] doc_link link to the document that'll be granulated
 @note if provided both doc_link and file options, file will be ignored and the client will download the document instead
 @option options [String] callback a callback url to the file granulation
 @option options [String] verb the callback request verb, when not provided, nsi.cloudooo default to POST

 @example A simple granulation
   doc = Base64.encode64(File.new('document.odt', 'r').read)
   nsicloudooo.granulate(:file => doc, :filename => 'document.odt')
 @example Downloading and granulating from web
   nsicloudooo.granulate(:doc_link => 'http://google.com/document.odt')
 @example Sending a callback url
   doc = Base64.encode64(File.new('document.odt', 'r').read)
   nsicloudooo.granulate(:file => doc, :filename => 'document.odt', :callback => 'http://google.com')
   nsicloudooo.granulate(:doc_link => 'http://google.com/document.odt', :callback => 'http://google.com')
 @example Using a custom verb to the callback
   doc = Base64.encode64(File.new('document.odt', 'r').read)
   nsicloudooo.granulate(:file => doc, :filename => 'document.odt', :callback => 'http://google.com', :verb => "PUT")
   nsicloudooo.granulate(:doc_link => 'http://google.com/document.odt', :callback => 'http://google.com', :verb => "PUT")

 @return [Hash] response
   * "key" [String] the key to access the granulated document if the sam node it was stored