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.



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

def session
  @session
end

Instance Method Details

#authenticateObject



43
44
45
46
# File 'lib/babelish/google_doc.rb', line 43

def authenticate
  # will try to get token and store in file below
  @session = GoogleDrive.saved_session ".babelish.token"
end

#download(requested_filename) ⇒ Object



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

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



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

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



48
49
50
51
52
53
# File 'lib/babelish/google_doc.rb', line 48

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

#open(requested_filename) ⇒ Object



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

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