class Commands::GetFile

Downloads Files/Revisions

Public Class Methods

command_name() click to toggle source
# File lib/gdsh/get_file.rb, line 9
def self.command_name
  'get_txt'
end
function() click to toggle source
# File lib/gdsh/get_file.rb, line 17
def self.function
  'Downloads a specific revision of a file if <revision_number> is ' \
  'specified; downloads all revisions otherwise.'
end
new(client, params) click to toggle source
Calls superclass method
# File lib/gdsh/get_file.rb, line 22
def initialize(client, params)
  super(client, params)
  @revision = (params.length == 3) ? params[2] : nil
  @file_id = @params[1]
end
parameters() click to toggle source
# File lib/gdsh/get_file.rb, line 13
def self.parameters
  '(<file_id>[,<revision_number>])'
end

Public Instance Methods

download(url) click to toggle source
# File lib/gdsh/get_file.rb, line 32
def download(url)
  return unless @client

  puts_downloading_banner(url)
  result = @client.execute(uri: url)
  if result.status == 200
    result.body
  else
    puts drive_error_string
  end
end
download_revision_as_txt(rev) click to toggle source
# File lib/gdsh/get_file.rb, line 44
def download_revision_as_txt(rev)
  download(txt_link(rev))
end
execute() click to toggle source
# File lib/gdsh/get_file.rb, line 57
def execute
  if @revision.nil?
    revisions.each { |r| write_to_file(r['id']) }
  else
    write_to_file(@revision)
  end
end
generate_filename_from_revision(revision) click to toggle source
# File lib/gdsh/get_file.rb, line 53
def generate_filename_from_revision(revision)
  @file_id + '_rev_' + revision + '.txt'
end
puts_downloading_banner(url) click to toggle source
# File lib/gdsh/get_file.rb, line 28
def puts_downloading_banner(url)
  puts 'Downloading '.colorize(:cyan) + "#{url} ...".colorize(:light_yellow)
end
write_to_file(revision) click to toggle source
# File lib/gdsh/get_file.rb, line 48
def write_to_file(revision)
  filename = generate_filename_from_revision(revision)
  File.write(filename, download_revision_as_txt(revision))
end