Class: GSMetrics::Worksheet
- Inherits:
-
Object
- Object
- GSMetrics::Worksheet
- Defined in:
- lib/gsmetrics/gsmetrics.rb
Instance Attribute Summary collapse
-
#check_worksheet_size ⇒ Object
Returns the value of attribute check_worksheet_size.
Instance Method Summary collapse
- #<<(item) ⇒ Object
- #append(item) ⇒ Object
-
#initialize(doc_title, worksheet_title, email, password) ⇒ Worksheet
constructor
A new instance of Worksheet.
- #next_row ⇒ Object
- #save(row_id = nil) ⇒ Object
- #save!(row_id = nil) ⇒ Object
- #session ⇒ Object
- #set_worksheet_size(size) ⇒ Object
- #worksheet ⇒ Object
Constructor Details
#initialize(doc_title, worksheet_title, email, password) ⇒ Worksheet
Returns a new instance of Worksheet.
20 21 22 23 24 25 26 27 |
# File 'lib/gsmetrics/gsmetrics.rb', line 20 def initialize doc_title, worksheet_title, email, password @doc_title = doc_title @worksheet_title = worksheet_title @email = email @password = password @items = [] @rows = [] end |
Instance Attribute Details
#check_worksheet_size ⇒ Object
Returns the value of attribute check_worksheet_size.
19 20 21 |
# File 'lib/gsmetrics/gsmetrics.rb', line 19 def check_worksheet_size @check_worksheet_size end |
Instance Method Details
#<<(item) ⇒ Object
33 34 35 |
# File 'lib/gsmetrics/gsmetrics.rb', line 33 def << item append item end |
#append(item) ⇒ Object
29 30 31 |
# File 'lib/gsmetrics/gsmetrics.rb', line 29 def append item @items << (item.nil? ? "" : item) end |
#next_row ⇒ Object
37 38 39 40 |
# File 'lib/gsmetrics/gsmetrics.rb', line 37 def next_row @rows << @items @items = [] end |
#save(row_id = nil) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/gsmetrics/gsmetrics.rb', line 42 def save row_id = nil next_row row_id ||= worksheet.num_rows + 1 set_worksheet_size(row_id + @rows.size) @rows.each_with_index do |items, row_index| items.each_with_index do |item, item_index| worksheet[row_id + row_index, item_index + 1] = item end end @items = [] worksheet.save end |
#save!(row_id = nil) ⇒ Object
57 58 59 |
# File 'lib/gsmetrics/gsmetrics.rb', line 57 def save! row_id = nil raise GSMetrics::Error.new('Save failed') unless save(row_id) end |
#session ⇒ Object
65 66 67 |
# File 'lib/gsmetrics/gsmetrics.rb', line 65 def session GoogleDrive.login(@email, @password) end |
#set_worksheet_size(size) ⇒ Object
61 62 63 |
# File 'lib/gsmetrics/gsmetrics.rb', line 61 def set_worksheet_size size worksheet.max_rows = size unless worksheet.max_rows >= size end |
#worksheet ⇒ Object
69 70 71 |
# File 'lib/gsmetrics/gsmetrics.rb', line 69 def worksheet @worksheet ||= session.spreadsheet_by_title(@doc_title).worksheet_by_title(@worksheet_title) end |