diff --git a/lib/Parse/JapanesePostalCode/Row.pm b/lib/Parse/JapanesePostalCode/Row.pm index 5709a9f..ea7e6b3 100644 --- a/lib/Parse/JapanesePostalCode/Row.pm +++ b/lib/Parse/JapanesePostalCode/Row.pm @@ -111,6 +111,10 @@ sub fix_town { if ($columns->{city} eq $name || $columns->{city} =~ /郡\Q$name\E$/) { $columns->{town_kana} = undef; $columns->{town} = undef; + } else { + $columns->{town_kana} =~ /^(.+)ノツギニバンチガクルバアイ/; + $columns->{town_kana} = $1; + $columns->{town} = $name; } } elsif ($columns->{town} =~ s/(その他)$//) { $columns->{town_kana} =~ s/\(ソノタ\)$//; diff --git a/t/111_notuginibanchigakurubaai.t b/t/111_notuginibanchigakurubaai.t index ff08510..2c3d562 100644 --- a/t/111_notuginibanchigakurubaai.t +++ b/t/111_notuginibanchigakurubaai.t @@ -6,7 +6,8 @@ use t::Util; my $parser = make_parser q{21207,"50137","5013701","ギフケン","ミノシ","ミノシノツギニバンチガクルバアイ","岐阜県","美濃市","美濃市の次に番地がくる場合",0,0,0,0,0,0}, - q{20448,"39972","3997201","ナガノケン","ヒガシチクマグンイクサカムラ","イクサカムラノツギニバンチガクルバアイ","長野県","東筑摩郡生坂村","生坂村の次に番地がくる場合",0,0,0,0,0,0}; + q{20448,"39972","3997201","ナガノケン","ヒガシチクマグンイクサカムラ","イクサカムラノツギニバンチガクルバアイ","長野県","東筑摩郡生坂村","生坂村の次に番地がくる場合",0,0,0,0,0,0}, + q{42212,"85724","8572427","ナガサキケン","サイカイシ","オオシマチョウノツギニバンチガクルバアイ","長崎県","西海市","大島町の次に番地がくる場合",0,0,0,0,0,0}; do { my $row = $parser->fetch_obj; @@ -30,4 +31,15 @@ do { is($row->town, undef); }; +do { + my $row = $parser->fetch_obj; + is($row->zip, '8572427'); + is($row->pref_kana, 'ナガサキケン'); + is($row->region_kana, 'サイカイシ'); + is($row->town_kana, 'オオシマチョウ'); + is($row->pref, '長崎県'); + is($row->region, '西海市'); + is($row->town, '大島町'); +}; + done_testing;