東京Ruby会議03のWebページを見ていたら,DataMapperを使ってみたくなりました。2/21に郵便番号を検索する簡単なサンプルを作っていたので,これをDataMapperを使って書き換えてみました。
ziptabale.rb
# -*- coding: utf-8 -*- require 'rubygems' require 'dm-core' DataMapper.setup(:default, { :adapter => 'sqlite3', :database => 'zipcode_dm.db' }) class Ziptable include DataMapper::Resource property :id, Serial property :code, String property :address, String end
insert_db_dm.rb
# -*- coding: utf-8 -*- require 'ziptable' require 'nkf' require 'csv' Ziptable.auto_migrate! CSV.foreach("45MIYAZA.CSV") do |row| code = row[2] address = NKF::nkf('-w', row[6] + row[7] + row[8]) Ziptable.create(:code => code, :address => address) puts code + " : " + address end
search_db_dm.rb
# -*- coding: utf-8 -*- require 'ziptable' search_word = "橘通東" result = Ziptable.first(:address.like => "%"+search_word+"%") puts "#{result.code}\t#{result.address}"