class Embulk::Input::GoogleSpreadsheets::SpreadsheetsClient

Attributes

auth[RW]
pager[RW]
spreadsheets_url[RW]
value_render_option[RW]
worksheet_title[RW]

Public Class Methods

new(task, auth:, pager:) click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 12
def initialize(task, auth:, pager:)
  @spreadsheets_url = task['spreadsheets_url']
  @worksheet_title = task['worksheet_title']
  @value_render_option = task['value_render_option']
  @auth = auth
  @pager = pager
end

Public Instance Methods

application_name() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 24
def application_name
  @application_name ||= 'embulk-input-google_spreadsheets'
end
logger() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 20
def logger
  GoogleSpreadsheets.logger
end
service() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 69
def service
  @service ||= Google::Apis::SheetsV4::SheetsService.new.tap do |s|
    s.client_options.application_name = application_name
    s.authorization = auth.authenticate
  end
end
spreadsheets() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 32
def spreadsheets
  service.get_spreadsheet(spreadsheets_id, ranges: worksheet_title, include_grid_data: false)
end
spreadsheets_id() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 28
def spreadsheets_id
  SpreadsheetsUrlUtil.capture_id(spreadsheets_url)
end
worksheet() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 36
def worksheet
  spreadsheets.sheets.first
end
worksheet_each_record(&block) click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 65
def worksheet_each_record(&block)
  pager.each_record(self, &block)
end
worksheet_grid_properties() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 44
def worksheet_grid_properties
  worksheet_properties.grid_properties
end
worksheet_max_column_num() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 52
def worksheet_max_column_num
  worksheet_grid_properties.column_count
end
worksheet_max_row_num() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 48
def worksheet_max_row_num
  worksheet_grid_properties.row_count
end
worksheet_properties() click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 40
def worksheet_properties
  worksheet.properties
end
worksheet_values(range) click to toggle source
# File lib/embulk/input/google_spreadsheets/spreadsheets_client.rb, line 56
def worksheet_values(range)
  range = "#{worksheet_title}!#{range}"
  logger.info {
    "`embulk-input-google_spreadsheets`: load data from spreadsheet: '#{spreadsheets_url}'," \
    " range: '#{range}', value_render_option: '#{value_render_option}'"
  }
  service.get_spreadsheet_values(spreadsheets_id, range, value_render_option: value_render_option).values
end