Class: GoogleSpreadsheet::Table

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/google_spreadsheet.rb

Overview

Use GoogleSpreadsheet::Worksheet#add_table to create table. Use GoogleSpreadsheet::Worksheet#tables to get GoogleSpreadsheet::Table objects.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Util

as_utf8, encode_query, h

Constructor Details

#initialize(session, entry) ⇒ Table

:nodoc:



459
460
461
462
463
464
# File 'lib/google_spreadsheet.rb', line 459

def initialize(session, entry) #:nodoc:
  @columns = {}
  @worksheet_title = as_utf8(entry.search("gs:worksheet")[0]["name"])
  @records_url = as_utf8(entry.search("content")[0]["src"])
  @session = session
end

Instance Attribute Details

#worksheet_titleObject (readonly)

Title of the worksheet the table belongs to.



467
468
469
# File 'lib/google_spreadsheet.rb', line 467

def worksheet_title
  @worksheet_title
end

Instance Method Details

#add_record(values) ⇒ Object

Adds a record.



470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'lib/google_spreadsheet.rb', line 470

def add_record(values)
  fields = ""
  values.each do |name, value|
    fields += "<gs:field name='#{h(name)}'>#{h(value)}</gs:field>"
  end
  xml =<<-EOS
    <entry
        xmlns="http://www.w3.org/2005/Atom"
        xmlns:gs="http://schemas.google.com/spreadsheets/2006">
      #{fields}
    </entry>
  EOS
  @session.request(:post, @records_url, :data => xml)
end

#recordsObject

Returns records in the table.



486
487
488
489
# File 'lib/google_spreadsheet.rb', line 486

def records
  doc = @session.request(:get, @records_url)
  return doc.search("entry").map(){ |e| Record.new(@session, e) }
end