2006-09-26
■ [Ruby] RakuAPIで遊ぶ

話題になってるRakuAPIが面白そうだったから、遊んでみたよ!このあいだのRSSライブラリを使えば、簡単にアクセスできそうだね。
じゃあ、配列aryで文字列を与えると、関連商品一覧を取得するスクリプトを書いてみるよ。
require 'open-uri' require 'rss/2.0' require 'kconv' require 'cgi' # http_proxy = 'http://プロキシサーバ名:ポート番号/' http_proxy = nil ary = ['プラズマテレビ','32インチ'] filename = 'http://rakuapi.ddo.jp/api?query=' filename << ary.map{|str| CGI.escape(str.toutf8) }.join('+') filename << '&output=rss' rss = open(filename, {:proxy => http_proxy}) {|file| RSS::Parser.parse(file) } rss.channel.items.each{|item| puts item.title.tosjis puts item.link puts }
けっこう面白いかも!さあ、みんなもLet's Hack!
■ [Ruby][SQL] ActiveRecordで「SQL書き方ドリル」(3)

きょうは「第2章 ひとつのテーブルを扱う」の「その3 列に別名をつける」をやってみるよ。
ある日、あなたは上司に頼まれました。
「この前の商品名と単価の一覧だけど、項目名がわかりづらい。わかりやすいものにしてもう一度出してくれ」
ProductNameやPriceという列名がわかりづらいとのことです。さて、どのようにすればよいでしょうか。
実は今回の問題(列名に別名をつける)はSQLでは意味があるけど、Rubyではあんまり関係ないよ。前回のコードの一番最初にprintf文を追加して、項目名を出力しちゃえばいいよね。
require 'rubygems'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => 'postgresql',
:host => 'localhost',
:username => 'sql_training',
:password => '(設定したパスワード)',
:database => 'nyanko'
)
class Product < ActiveRecord::Base
set_primary_key :ProductID
end
printf "%14s%19s\n", "商品名", "単価"
Product.find(:all).each {|item|
printf "%-24s %12d\n", item.productname, item.price
}
コメント
トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20060926