Google Spreadsheets を DB のように使える ActiveResource モデルクラス

39 views
Skip to first unread message

WebOS Goodies 管理人

unread,
Feb 15, 2009, 10:32:20 AM2/15/09
to WebOS Goodies
こんにちは、 WebOS Goodies 管理人の伊藤です。

先月末から今月はじめにかけて、グループのページが
スパムと判定されてアクセス不能になっていました。
どうやら Google 側でなんらかのトラブルがあったらしく、
他にも一部のグループが同様の扱いを受けていたようです。

もしその間にアクセスされていましたら、
ご不便をおかけして申し訳ありません。

上記のトラブルで投稿もできなくなっていたため
ブログでの公開からだいぶ遅れてしまいましたが、
Google Spreadsheets のデータを取得・更新する
ActiveResource のモデルクラスを作りましたので、お知らせします。

ソースコード:
http://webos-goodies.googlecode.com/svn/trunk/blog/articles/active_resource_google_spreadsheets_data_api/gres_google_spreadsheets.rb

使い方の説明:
http://webos-goodies.jp/archives/active_resource_google_spreadsheets_data_api.html

このクラスを利用すると、 Ruby スクリプトから Google Spreadsheets に、
まるで DB のようにアクセスすることが可能になります。
例えば、ドキュメントの最初のシートの "title" フィールドを
すべて "ActiveResource" に変更するには、以下のようにします。

------------------------------------------------------------
require 'ares_google_spreadsheets'

# Google アカウントを設定
GoogleSpreadsheets::Base.user = 'E-Mailアドレス'
GoogleSpreadsheets::Base.password = 'パスワード'

# Google Docs の編集ページの URL に含まれている ID
doc_id = 'ドキュメントID'

# 最初のシートを取得
sheets = GoogleSpreadsheets::Worksheet.find(:first, :params => {
:document_id => doc_id,
:visibility => 'private',
:projection => 'full'
})

# すべての行を取得
rows = GoogleSpreadsheets::List.find(:all, :params => {
:document_id => doc_id,
:worksheet_id => sheet.id,
:visibility => 'private',
:projection => 'full'
})

# title フィールドを "ActiveResource" に変更
rows.each do |row|
row.gsx_title = "ActiveResource";
row.save
end
------------------------------------------------------------

Google Spreadsheets にデータを保存するアプリケーションが
とても簡単に作れますので、ぜひご活用ください。

----
WebOS Goodies 管理人:伊藤千光 <source...@gmail.com>
Reply all
Reply to author
Forward
0 new messages