Class: Babelish::GoogleDoc

Inherits:
Object
  • Object
show all
Defined in:
lib/babelish/google_doc.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sessionObject

Returns the value of attribute session.



14
15
16
# File 'lib/babelish/google_doc.rb', line 14

def session
  @session
end

Instance Method Details

#authenticateObject



44
45
46
47
48
49
50
51
# File 'lib/babelish/google_doc.rb', line 44

def authenticate
  # will try to get token and store in file below
  config = GoogleDrive::Config.new(".babelish.token")
  config.client_id = Babelish::Keys::GOOGLE_DRIVE_CLIENT_ID
  config.client_secret = Babelish::Keys::GOOGLE_DRIVE_CLIENT_SECRET
  config.scope = ["https://www.googleapis.com/auth/drive.readonly"]
  @session = GoogleDrive::Session.from_config(config)
end

#download(requested_filename) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/babelish/google_doc.rb', line 16

def download(requested_filename)
  file = file_with_name(requested_filename)
  return [] unless file
  files = []
  file.worksheets.each_with_index do |worksheet, index|
    files << download_spreadsheet(requested_filename, "translations_#{worksheet.title}.csv", index)
  end
  files
end

#download_spreadsheet(requested_filename, output_filename, worksheet_index = 0) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/babelish/google_doc.rb', line 26

def download_spreadsheet(requested_filename, output_filename, worksheet_index = 0)
  output_filename ||= "translations.csv"
  spreadsheet = file_with_name(requested_filename)
  return nil unless spreadsheet
  worksheet = spreadsheet.worksheets[worksheet_index]
  worksheet.export_as_file(output_filename)
  return output_filename
end

#file_with_name(name) ⇒ Object



53
54
55
56
57
58
# File 'lib/babelish/google_doc.rb', line 53

def file_with_name(name)
  unless @session
    authenticate
  end
  @session.file_by_title(name)
end

#open(requested_filename) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/babelish/google_doc.rb', line 35

def open(requested_filename)
  file = file_with_name(requested_filename)
  if file
    system "open \"#{file.human_url}\""
  else
    puts "can't open requested file"
  end
end