Skip to content

Fix exceptions when name searches receive non-String values - #89

Merged
chocoby merged 1 commit into
mainfrom
fix-non-string-name-search
Aug 1, 2026
Merged

Fix exceptions when name searches receive non-String values#89
chocoby merged 1 commit into
mainfrom
fix-non-string-name-search

Conversation

@chocoby

@chocoby chocoby commented Aug 1, 2026

Copy link
Copy Markdown
Owner

JpPrefecture::Prefecture.find のメソッドドキュメントの all_fields に Integer を許容すると書いていたが、実装は String 前提の empty? / downcase を呼ぶため例外になっていた。

  • find(all_fields: 13) → NoMethodError
  • find(name: 1) → NoMethodError
  • find(name_e: :hokkaido) → TypeError

find_code の String 系の分岐で valueto_s して渡すようにした。

あわせて JpPrefecture::Prefecture.find のドキュメントから Integer を削除。マッピングの検索対象は :name / :name_e / :name_r / :name_h / :name_k / :area の 6 つで都道府県コードを含まないため、Integer を渡しても必ず nil になり実態と合っていなかった。

互換性

破壊的変更はない。これまで例外だった入力が nil または検索成功に変わる。

なお find(code: :foo) / find(zip: :foo)Symbol#to_i がないため引き続き NoMethodError が発生する。数値系フィールドに Symbol を渡すのは想定外の使い方と判断し、今回は対象外としている。

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 100.0%. remained the same — fix-non-string-name-search into main

@chocoby
chocoby marked this pull request as ready for review August 1, 2026 08:36
@chocoby
chocoby merged commit dfdee12 into main Aug 1, 2026
51 checks passed
@chocoby
chocoby deleted the fix-non-string-name-search branch August 1, 2026 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants