Net::Google::Spreadsheets::Record - A representation class for Google Spreadsheet record.


Net-Google-Spreadsheets documentation Contained in the Net-Google-Spreadsheets distribution.

Index


Code Index:

NAME

Top

Net::Google::Spreadsheets::Record - A representation class for Google Spreadsheet record.

SYNOPSIS

Top

  use Net::Google::Spreadsheets;

  my $service = Net::Google::Spreadsheets->new(
    username => 'mygoogleaccount@example.com',
    password => 'mypassword',
  );

  # get a record
  my $record = $service->spreadsheet(
    {
        title => 'list for new year cards',
    }
  )->table(
    {
        title => 'addressbook',
    }
  )->record(
    {
        sq => 'id = 1000',
    }
  );

  # get the content of a row
  my $hashref = $record->content;
  my $id = $hashref->{id};
  my $address = $hashref->{address};

  # update a row
  $record->content(
    {
        id => 1000,
        address => 'somewhere',
        zip => '100-0001',
        name => 'Nobuo Danjou',
    }
  );

  # get and set values partially

  my $value = $record->param('name');
  # returns 'Nobuo Danjou'
  # you can also get it via content like this:
  my $value_via_content = $record->content->{name};

  my $newval = $record->param({address => 'elsewhere'});
  # updates address (and keeps other fields) and returns new record value (with all fields)

  my $hashref2 = $record->param;
  # same as $record->content;

  # setting whole new content
  $record->content(
    {
        id => 8080,
        address => 'nowhere',
        zip => '999-9999',
        name => 'nowhere man'
    }
  );

  # delete a record
  $record->delete;

METHODS

Top

param

sets and gets content value.

delete

deletes the record.

ATTRIBUTES

Top

content

Rewritable attribute. You can get and set the value.

SEE ALSO

Top

http://code.google.com/intl/en/apis/spreadsheets/docs/3.0/developers_guide_protocol.html

http://code.google.com/intl/en/apis/spreadsheets/docs/3.0/reference.html

Net::Google::AuthSub

Net::Google::Spreadsheets

Net::Google::Spreadsheets::Table

Net::Google::Spreadsheets::Row

AUTHOR

Top

Nobuo Danjou <nobuo.danjou@gmail.com>


Net-Google-Spreadsheets documentation Contained in the Net-Google-Spreadsheets distribution.

package Net::Google::Spreadsheets::Record;
use Any::Moose;
use XML::Atom::Util qw(nodelist);

with 
    'Net::Google::DataAPI::Role::Entry',
    'Net::Google::DataAPI::Role::HasContent';

after from_atom => sub {
    my ($self) = @_;
    for my $node (nodelist($self->elem, $self->ns('gs')->{uri}, 'field')) {
        $self->content->{$node->getAttribute('name')} = $node->textContent;
    }
};

around to_atom => sub {
    my ($next, $self) = @_;
    my $entry = $next->($self);
    while (my ($key, $value) = each %{$self->content}) {
        $entry->add($self->ns('gs'), 'field', $value, {name => $key});
    }
    return $entry;
};

__PACKAGE__->meta->make_immutable;

no Any::Moose;

1;

__END__