🙆♀️
JSON.loadじゃなくてJSON.parse使えとrubocopに怒られました
これは株式会社SUPER STUDIO Advent Calendar 2022の4日目の記事です。
ごきげんよう🌸
株式会社SUPER STUDIOでコーポレートエンジニアを担当している@bboobbaaです!
現在社内ツールをRubyで開発しています。
Ruby on Railsはチュートリアルはやったことがあったのですが、業務では永遠に触ることはないと思っていたので、今更ですがRailsの制約の多さに奮闘しております。
jsonファイルを読み込んだときに試行錯誤したはなしです。
JSON.load()
をしたらrubocopに怒られました
ファイルを読み込んでFile.open(path) do |f|
JSON.load(f)
end
Offenses:
xxx: C: [Corrected] Security/JSONLoad: Prefer JSON.parse over JSON.load.
JSON.load(f)
^^^^
999 files inspected, 1 offense detected, 1 offense corrected
えっどゆこと?
flori/jsonの実装を見たところ、load()
がparse()
をラップしておりました。
parse()
するだけでよかった
開いて読み込んでFile.open(path) do |f|
JSON.parse(f.read)
end
Syntax OK
これで終わりません
よくよくflori/jsonを読んでみたところ、ファイルを読み込むメソッドがありました。
JSON.load_file(path)
これで思い通りに動きました\(^o^)/
JSON.load_file()
結論:jsonファイル読み込むなら公式ドキュメントよりもソース読んだほうが早かったぴえん
Discussion