バリケンのRuby日記 RSSフィード

2006-09-26

[] 「たのしいRuby 第2版」の練習問題を解く(5)  「たのしいRuby 第2版」の練習問題を解く(5) - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  「たのしいRuby 第2版」の練習問題を解く(5) - バリケンのRuby日記  「たのしいRuby 第2版」の練習問題を解く(5) - バリケンのRuby日記 のブックマークコメント

今日からは、第11章の練習問題だよ。

(1) 1から100までの整数を含む配列を作ってください。

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。

a = (1..100).to_a

解答例と比較してみると‥‥。なるほど、ブロックで順番に埋めていくほうが正統派かな?

[] RakuAPIで遊ぶ  RakuAPIで遊ぶ - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  RakuAPIで遊ぶ - バリケンのRuby日記  RakuAPIで遊ぶ - バリケンのRuby日記 のブックマークコメント

話題になってる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!

[][] ActiveRecordで「SQL書き方ドリル」(3)  ActiveRecordで「SQL書き方ドリル」(3) - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  ActiveRecordで「SQL書き方ドリル」(3) - バリケンのRuby日記  ActiveRecordで「SQL書き方ドリル」(3) - バリケンのRuby日記 のブックマークコメント

きょうは「第2章 ひとつのテーブルを扱う」の「その3 列に別名をつける」をやってみるよ。

ある日、あなたは上司に頼まれました。

「この前の商品名と単価の一覧だけど、項目名がわかりづらい。わかりやすいものにしてもう一度出してくれ」

ProductNameやPriceという列名がわかりづらいとのことです。さて、どのようにすればよいでしょうか。

すらすらと手が動くようになるSQL書き方ドリル

実は今回の問題(列名に別名をつける)は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
}

追記:SQLのAS句で別名をつければ、新たに付けた別名のメソッド名で呼び出すことができるよ。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20060926