class MyBanner::SpreadsheetService
Attributes
spreadsheet_title[R]
Public Class Methods
new(spreadsheet_title)
click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 9 def initialize(spreadsheet_title) @spreadsheet_title = spreadsheet_title #@sheet_name = "roster-todo" # todo: "roster-#{Date.today.to_s}" #@sheet_values = [["email", "registration_number", "net_id"]] + 27.times.map { |i| ["student#{i+1}@todo.edu", i+1, "student#{i+1}"] } # todo: get from roster end
Public Instance Methods
client()
click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 36 def client @client ||= SpreadsheetClient.new end
drive_client()
click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 64 def drive_client @drive_client ||= DriveClient.new end
file_list()
click to toggle source
@return Google::Apis::DriveV3::FileList
# File lib/my_banner/spreadsheet_service.rb, line 57 def file_list @file_list ||= begin request_options = {q: "mimeType='application/vnd.google-apps.spreadsheet'", order_by: "createdTime desc", page_size: 25} drive_client.list_files(request_options) end end
new_spreadsheet()
click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 40 def new_spreadsheet #roster_sheet = Google::Apis::SheetsV4::Sheet.new(properties: {title: sheet_name, sheet_type: "GRID"}) #new_spreadsheet_attrs = { properties: {title: spreadsheet_title}, sheets: [roster_sheet] } new_spreadsheet_attrs = { properties: { title: spreadsheet_title } } Google::Apis::SheetsV4::Spreadsheet.new(new_spreadsheet_attrs) end
spreadsheet()
click to toggle source
@return Google::Apis::SheetsV4::Spreadsheet
# File lib/my_banner/spreadsheet_service.rb, line 28 def spreadsheet @spreadsheet ||= if spreadsheet_file client.get_spreadsheet(spreadsheet_file.id) else client.create_spreadsheet(new_spreadsheet) end end
spreadsheet_file()
click to toggle source
@return Google::Apis::DriveV3::File
# File lib/my_banner/spreadsheet_service.rb, line 52 def spreadsheet_file file_list.files.find { |f| f.name == spreadsheet_title } end
Private Instance Methods
delete_spreadsheet()
click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 70 def delete_spreadsheet # DANGER! drive_client.delete_file(spreadsheet.spreadsheet_id) end