Sequel::Dataset に Shapefile 出力メソッドを付加してみる
Sequel::Dataset は必要な情報をよく覚えておいてくれるので、pgsql2shp の呼び出しによる Sequel::Dataset の Shapefile 出力機能を簡単に書くことができました。
実装
class Sequel::Dataset def to_shp(path) qi = self.quote_identifiers? self.quote_identifiers = false cmd = "pgsql2shp -f #{path} -h #{self.db.opts[:host] or 'localhost'} -p #{self.db.opts[:port] or 5432} -P #{self.db.opts[:password]} -u #{self.db.opts[:user]} #{self.db.opts[:database]} \"#{self.sql}\"" system(cmd) self.quote_identifiers = qi end end
ダブルクォートの入れ子の問題があり、Sequel::Dataset#quote_identifier を強制的に false にしています。これでは、属性名が日本語の場合等にうまく対応できていないと思います。あとで考えます。