class GoogleSheetsAppendroid::AppendRows

Attributes

access_token[R]
range[R]
rows[R]

Public Class Methods

new(rows, range) click to toggle source
# File lib/google_sheets_appendroid/append_rows.rb, line 8
def initialize(rows, range)
  @access_token = Authorize.get_access_token
  @rows         = rows
  @range        = range
end

Public Instance Methods

punch_it() click to toggle source
# File lib/google_sheets_appendroid/append_rows.rb, line 14
def punch_it
  req = create_request
  Net::HTTP.start(
    uri.hostname,
    uri.port,
    use_ssl: uri.scheme == 'https'
  ) { |http| http.request(req) } 
end

Protected Instance Methods

create_request() click to toggle source
# File lib/google_sheets_appendroid/append_rows.rb, line 25
def create_request
  req = Net::HTTP::Post.new(uri)
  req['Content-Type'] = 'application/json'
  req['Authorization'] = "Bearer #{access_token}"
  req.body = value_range_object
  req
end
uri() click to toggle source
# File lib/google_sheets_appendroid/append_rows.rb, line 33
def uri
  sheet_id = GoogleSheetsAppendroid.configuration.sheet_id
  uri = "https://sheets.googleapis.com/v4/spreadsheets/#{sheet_id}/"\
    "values/#{range}:append?valueInputOption=USER_ENTERED"
  encoded_uri = URI.encode(uri)
  URI encoded_uri
end
value_range_object() click to toggle source
# File lib/google_sheets_appendroid/append_rows.rb, line 41
def value_range_object
  JSON.generate({ range: range,
                  majorDimension: "ROWS",
                  values: rows })
end