Fix incorrect RDoc output examples in ActiveSupport
ActiveSupport の RDoc に記載された例示が実装と食い違っていたため、正しい出力例に置き換えられました。これにより、ドキュメントを参照した開発者が期待通りの例外メッセージや設定値を確認できるようになります。
背景
assert_valid_keys の例示では、文字列キーに対するエラーメッセージがシングルクオートで囲まれた 'name', 'age' と記載されていましたが、実際の実装は valid_keys.map(&:inspect) により ダブルクオート で出力されます。この不一致は同一ファイル内のシンボルキー例と矛盾し、利用者に混乱を招いていました。
encrypted_configuration.rb の config メソッド例でも、read が返すシリアライズ済みデータは 456 であるのに対し、例示が誤って 789 と記載されていました。周囲の read や keys の例と整合性が取れておらず、ドキュメント全体の信頼性が低下していました。
技術的な変更
core_ext/hash/keys.rb の assert_valid_keys 例示修正
- # { name: 'Rob', years: '28' }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key: :years. Valid keys are: :name, :age"
- # { name: 'Rob', age: '28' }.assert_valid_keys('name', 'age') # => raises "ArgumentError: Unknown key: :name. Valid keys are: 'name', 'age'"
+ # { name: 'Rob', years: '28' }.assert_valid_keys(:name, :age) # => raises 'ArgumentError: Unknown key: :years. Valid keys are: :name, :age'
+ # { name: 'Rob', age: '28' }.assert_valid_keys('name', 'age') # => raises 'ArgumentError: Unknown key: :name. Valid keys are: "name", "age"'
変更点は、例示全体をシングルクオートで囲み、文字列キーの一覧を ダブルクオート に統一したことです。これにより、実際に例外が生成するメッセージと完全に一致します。
encrypted_configuration.rb の config メソッド例示修正
- # # => { some_secret: 123, some_namespace: { another_secret: 789 } }
+ # # => { some_secret: 123, some_namespace: { another_secret: 456 } }
config は内部で read の結果をデシリアライズしますが、read の例示は 456 を返す設定です。今回の修正で全ての例示が同一の数値に揃えられ、ドキュメントの一貫性が確保されました。
設計判断
本 PR ではコードロジック自体は変更せず、 コメントのみの更新 が行われました。実装は既に期待通りの動作をしているため、ドキュメントを修正するだけでリグレッションリスクは発生しません。この方針は、API の振る舞いを安定させつつ、開発者が参照する公式ドキュメントの正確性を最優先するという設計判断を示しています。
ドキュメント修正に伴う唯一の副作用は、RDoc 生成時の文字列表記が更新されることです。これにより、生成された API リファレンスが実際の例外メッセージと完全に一致し、学習コストの低減が期待できます。
まとめ
ActiveSupport の RDoc に記載された例示が実装と食い違っていた問題を、正しい出力例に置き換える 形で解消しました。コードの挙動は変更せず、ドキュメントの正確性と一貫性を高めることで、開発者が安心して参照できる環境を提供しています。