Sha256: 40b7c1c102637008efa4cfdceca5a734600257bc833e50dd86a792ebf9ac01fb
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
require 'japanese_local_governments/data' require 'date' require 'csv' module JLG class Governments include JLG::DATA # 地方自治体のリストを出力する # @param filename [String] 出力ファイルのパス def self.list(filename=nil) JLG.list(filename){|out| out.puts HEADER.join(',') GOV_DATA.values.each do |data| out.puts data.values.join(',') end } end # 都道府県名、自治体名からコードを得る # @param pref [String] 都道府県名 # @param name [String] 自治体名 # @return [String] 自治体コード。6桁。ゼロパディングあり。 def self.code_of(pref, name=pref) GOV_DATA[GOV_DATA_NAME_INDEX[pref][name]][:code] rescue nil end # コードから自治体データを得る # @param code [String] 自治体コード。6桁。ゼロパディングあり。 def self.data_of(code) GOV_DATA[code] end # 都道府県名、自治体名を持つCSVファイルを読み込み 自治体コードを付加する # @param inputfile [String] 自治体コードを付加したいCSVファイル # @param outputfile [String] 出力ファイル名。 # @param pref [String] 都道府県カラムの名前 # @param name [String] 自治体名カラムの名前 def self.append_code(inputfile, outputfile=nil, pref:'pref', name: 'name') if outputfile.nil? date = Date.today.strftime('%Y%m%d') outputfile = './' + File.basename(inputfile,'.*') + "_#{date}.csv" end CSV.open(inputfile,headers: true,return_headers:true) do|csv| CSV.open(outputfile,"wb") do |out| csv.each do |row| if row.header_row? out<<row.headers.to_a.insert(0,'code') else code = code_of(row[pref],row[name]) out<<row.to_h.values.insert(0,code) end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
japanese_local_governments-0.1.0 | lib/japanese_local_governments/governments.rb |