越前藩国 Wiki

uten.rb

最終更新:

echizen

- view
だれでも歓迎! 編集
#パーサクラス定義の取り込み
require 'shikint.rb'
 
#パーサ用各国別パラメタ定義の取り込み
require 'cashrec_def.rb'
 
#データベースアクセス用定義
require 'rubygems'
require_gem 'activerecord'
 
db_env = YAML.load(open('./sigint.yml'))
ActiveRecord::Base.establish_connection( db_env['database'] )
 
class LatestCashRecord < ActiveRecord::Base
  belongs_to :nation , :foreign_key => "id"
end
 
class Nation < ActiveRecord::Base
end
 
class Property < ActiveRecord::Base
end
 
 
#登録されたパーサ全てを利用し、順番に各藩国の財務表を調べていく。
for nation in ZaimuParser.nations.values.sort_by{|n| n.no}
  print nation.no,nation.name,"\n"
  rec = LatestCashRecord.find(nation.no)
  rec[:url] = nation.url
 
  #各国財務表ページの「最終更新日時」を取得する。
  #(実際には意味のある情報が取れていないので、文殊では表示していない・・)
  begin
    nation.head
    rec.last_modified = nation.response['Last-Modified']
  rescue  #例外処理
    rec.last_modified = nil
  end
 
  #各国財務ページの解析、および文殊への登録(の準備)
  begin 
    nation.parse
    parsed = nation.parsed
    rec.fund = parsed[0].to_i
    rec.resource = parsed[1].to_i
    rec.food = parsed[2].to_i
    rec.fuel = parsed[3].to_i
    rec.entertainment = parsed[4].to_i
  rescue  #例外処理
    rec.fund = nil
    rec.resource = nil
    rec.food = nil
    rec.fuel = nil
    rec.entertainment = nil
  ensure
    rec.save  #データベースへコミット
  end
end
 
#財務チェックを行った日時を、文殊に登録する。
zaimu_checked = Property.find(:first , :conditions => "name = 'zaimu_checked'")
unless zaimu_checked 
  zaimu_checked = Property.new
  zaimu_checked.name = 'zaimu_checked'
end
zaimu_checked.value = Time.now.strftime("%Y/%m/%d %H:%M")
zaimu_checked.save

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

記事メニュー
目安箱バナー