class Commands::UploadTemplate

Uploads a template to the Drive.

Public Class Methods

command_name() click to toggle source
# File lib/gdsh/upload_template.rb, line 11
def self.command_name
  'upload_template'
end
function() click to toggle source
# File lib/gdsh/upload_template.rb, line 15
def self.function
  'Uploads a template to the Drive.'
end

Public Instance Methods

execute() click to toggle source

Writes a template file to drive.

# File lib/gdsh/upload_template.rb, line 43
def execute
  filename = 'document.txt'
  return unless @client && File.exist?(filename)

  puts 'Writing template to drive.'.colorize(:green)
  file = insert_schema('My Document', 'A test document', txt)
  insert_file(filename, file, txt)
end
insert_file(filename, file, mimetype) click to toggle source
# File lib/gdsh/upload_template.rb, line 27
def insert_file(filename, file, mimetype)
  drive = @client.discovered_api('drive', 'v2')
  media = Google::APIClient::UploadIO.new(filename, mimetype)
  @client.execute(
    api_method: drive.files.insert,
    body_object: file,
    media: media,
    parameters: {
      uploadType: 'multipart',
      convert: 'true',
      alt: 'json' })
end
insert_schema(title, description, mimetype) click to toggle source
# File lib/gdsh/upload_template.rb, line 19
def insert_schema(title, description, mimetype)
  drive = @client.discovered_api('drive', 'v2')
  drive.files.insert.request_schema.new(
    title: title,
    description: description,
    mimeType: mimetype)
end