Class: Anemoi::AreaParser

Inherits:
Object
  • Object
show all
Defined in:
lib/anemoi/area_parser.rb

Constant Summary collapse

ID_BY_CITY =
{
  "稚内"     => 1,
  "旭川"     => 2,
  "留萌"     => 3,
  "札幌"     => 4,
  "岩見沢"   => 5,
  "倶知安"   => 6,
  "網走"     => 7,
  "北見"     => 8,
  "紋別"     => 9,
  "根室"     => 10,
  "釧路"     => 11,
  "帯広"     => 12,
  "室蘭"     => 13,
  "浦河"     => 14,
  "函館"     => 15,
  "江差"     => 16,
  "青森"     => 17,
  "むつ"     => 18,
  "八戸"     => 19,
  "秋田"     => 20,
  "横手"     => 21,
  "盛岡"     => 22,
  "大船渡"   => 24,
  "仙台"     => 25,
  "白石"     => 26,
  "山形"     => 27,
  "米沢"     => 28,
  "酒田"     => 29,
  "新庄"     => 30,
  "福島"     => 31,
  "小名浜"   => 32,
  "若松"     => 33,
  "水戸"     => 54,
  "土浦"     => 55,
  "宇都宮"   => 56,
  "大田原"   => 57,
  "前橋"     => 58,
  "みなかみ" => 59,
  "さいたま" => 60,
  "熊谷"     => 61,
  "秩父"     => 62,
  "東京"     => 63,
  "大島"     => 64,
  "八丈島"   => 65,
  "父島"     => 66,
  "千葉"     => 67,
  "銚子"     => 68,
  "館山"     => 69,
  "横浜"     => 70,
  "小田原"   => 71,
  "甲府"     => 75,
  "河口湖"   => 76,
  "富山"     => 44,
  "伏木"     => 45,
  "金沢"     => 46,
  "輪島"     => 47,
  "福井"     => 48,
  "敦賀"     => 49,
  "新潟"     => 50,
  "長岡"     => 51,
  "高田"     => 52,
  "相川"     => 53,
  "長野"     => 72,
  "松本"     => 73,
  "飯田"     => 74,
  "静岡"     => 34,
  "網代"     => 35,
  "三島"     => 36,
  "浜松"     => 37,
  "名古屋"   => 38,
  "豊橋"     => 39,
  "岐阜"     => 40,
  "高山"     => 41,
  "尾鷲"     => 43,
  "大津"     => 77,
  "彦根"     => 78,
  "京都"     => 79,
  "舞鶴"     => 80,
  "大阪"     => 81,
  "神戸"     => 82,
  "豊岡"     => 83,
  "奈良"     => 84,
  "風屋"     => 85,
  "和歌山"   => 86,
  "潮岬"     => 87,
  "岡山"     => 88,
  "津山"     => 89,
  "広島"     => 90,
  "庄原"     => 91,
  "松江"     => 92,
  "浜田"     => 93,
  "西郷"     => 94,
  "鳥取"     => 95,
  "米子"     => 96,
  "下関"     => 97,
  "山口"     => 98,
  "柳井"     => 99,
  ""       => 100,
  "徳島"     => 101,
  "日和佐"   => 102,
  "高松"     => 103,
  "松山"     => 104,
  "新居浜"   => 105,
  "宇和島"   => 106,
  "高知"     => 107,
  "室戸"     => 108,
  "清水"     => 109,
  "福岡"     => 110,
  "八幡"     => 111,
  "飯塚"     => 112,
  "久留米"   => 113,
  "大分"     => 114,
  "中津"     => 115,
  "日田"     => 116,
  "佐伯"     => 117,
  "長崎"     => 118,
  "佐世保"   => 119,
  "厳原"     => 120,
  "福江"     => 121,
  "佐賀"     => 122,
  "伊万里"   => 123,
  "熊本"     => 124,
  "阿蘇乙姫" => 125,
  "牛深"     => 126,
  "人吉"     => 127,
  "宮崎"     => 128,
  "延岡"     => 129,
  "都城"     => 130,
  "高千穂"   => 131,
  "鹿児島"   => 132,
  "鹿屋"     => 133,
  "種子島"   => 134,
  "名瀬"     => 135,
  "那覇"     => 136,
  "名護"     => 137,
  "久米島"   => 138,
  "南大東島" => 139,
  "宮古島"   => 140,
  "石垣島"   => 141,
  "与那国島" => 142,
  ""       => 42,
  "宮古"     => 23
}
CITY_BY_PREF =
{
  "北海"   => "札幌",
  "岩手"   => "盛岡",
  "宮城"   => "仙台",
  "茨城"   => "水戸",
  "栃木"   => "宇都宮",
  "群馬"   => "前橋",
  "埼玉"   => "さいたま",
  "神奈川" => "横浜",
  "山梨"   => "甲府",
  "富山"   => "富山",
  "石川"   => "金沢",
  "長野"   => "長野",
  "愛知"   => "名古屋",
  "三重"   => "",
  "滋賀"   => "大津",
  "兵庫"   => "神戸",
  "島根"   => "松江",
  "香川"   => "高松",
  "愛媛"   => "松山",
  "沖縄"   => "那覇"
}
@@city_regexp =
/#{ID_BY_CITY.map(&:first).join('|')}/
@@pref_regexp =
/#{CITY_BY_PREF.map(&:first).join('|')}/

Class Method Summary collapse

Class Method Details

.canonical_city(text) ⇒ Object



199
200
201
202
# File 'lib/anemoi/area_parser.rb', line 199

def canonical_city(text)
  text = text.gsub("東京都","東京")
  text
end

.city_by_pref(text) ⇒ Object



182
183
184
185
186
187
188
# File 'lib/anemoi/area_parser.rb', line 182

def city_by_pref(text)
  if city = text.match(@@pref_regexp)
    city = city.values_at(0).first
    text.gsub! city, CITY_BY_PREF[city]
  end
  text
end

.info_by_city(text) ⇒ Object



190
191
192
193
194
195
196
197
# File 'lib/anemoi/area_parser.rb', line 190

def info_by_city(text)
  city = text.match(@@city_regexp)
  if city
    name = city.values_at(0).first
    return { :id => ID_BY_CITY[name], :name => name }
  end
  nil
end

.parse(text) ⇒ Object



177
178
179
180
# File 'lib/anemoi/area_parser.rb', line 177

def parse(text)
  text = canonical_city(text)
  info_by_city(city_by_pref(text))
end