Class: GdocTransReader

Inherits:
Object
  • Object
show all
Defined in:
lib/transync/gdoc_trans/gdoc_trans_reader.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gdoc_access, tab) ⇒ GdocTransReader

Returns a new instance of GdocTransReader.



7
8
9
10
11
12
13
14
# File 'lib/transync/gdoc_trans/gdoc_trans_reader.rb', line 7

def initialize(gdoc_access, tab)
  session = GoogleDrive.(gdoc_access['email'], gdoc_access['password'])

  worksheet_tabs = session.spreadsheet_by_key(gdoc_access['key']).worksheets
  # select the right tab from worksheet
  self.worksheet = worksheet_tabs.detect{ |w| w.title == tab }
  abort("#{tab} tab is not defined in GDoc") if self.worksheet.nil?
end

Instance Attribute Details

#worksheetObject

Returns the value of attribute worksheet.



5
6
7
# File 'lib/transync/gdoc_trans/gdoc_trans_reader.rb', line 5

def worksheet
  @worksheet
end

Instance Method Details

#build_trans_hash(language = 'en') ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/transync/gdoc_trans/gdoc_trans_reader.rb', line 16

def build_trans_hash(language = 'en')
  trans_hash = { title: worksheet.title, language: language, translations: [] }

  key_column = GdocTrans::WORKSHEET_COLUMNS[:key]
  language_column = GdocTrans::WORKSHEET_COLUMNS[language.to_sym]

  (GdocTrans::START_ROW..worksheet.num_rows).to_a.each do |row|
    translation = { key: worksheet[row, key_column], value: worksheet[row, language_column] }
    trans_hash[:translations] << translation
  end

  trans_hash
end