OpenAPI Generator の Ruby クライアントコード生成のバグをいくつか直した

OpenAPI のコードジェネレータである OpenAPI Generator に Ruby クライアント生成周りでいくつかの PR を出した。

↓の記事の続き。

経緯

3週間くらい前に swagger-codegen にいくつかのバグ報告と、生成した Ruby クライアントが Mac でビルドできない問題の修正 PR を送ったが、どうもマージされる気配がない。気になったので少し調べてみたところ、現在はなんやかんやあって swagger-codegen から fork した OpenAPI Generator の方が開発が活発そうなことがわかった。

たまたまコアコミッタの @wing328 さんとコンタクトを取ることができ、swagger-codegen に出した Issue のうちまだ直っていないものは OpenAPI Generator にも出してほしいとのことだったので Issue を再作成し、直せるものは直した。

修正したもの

エラーメッセージの式展開がシングルクォート文字列で使われていたので、ダブルクォートに修正。

生成されたコードが自らの .rubocop.yml に怒られる状態だったのを修正。主に Layout/EmptyLinesAroundClassBodyLayout/EmptyLinesAroundModuleBody がほとんどで、jmustache の {{#-last}}/{{/-last}} を活用しましょうという感じだった。

enum にシングルクォートが入っていると生成したコードがシンタックスエラーになるバグの修正。「enum の選択肢の展開にダブルクォート文字列を使う」+「文字列に埋め込む際に式展開を使う」で回避した。

Ruby とは関係ないけど、PR テンプレートにあるサンプル更新処理に抜けっぽいものがあったので追加。


……とまあエスケープ周りだけでもまだまだ直し甲斐がありそうな雰囲気なので、時間を見つけて直していきたい所存。

おまけ

こんな感じで Ruby の Issue/PR を出していたところ、@ackintosh さんに薦めて頂き Ruby の Technical committee に入ることになった。

正直こんな若輩に務まるのかと戦々恐々としてますが、とりあえずしばらくは Ruby クライアントのバグ修正を中心に取り組みます。ゆくゆくはそれ以外についても……

というわけで Ruby 関連の Issue/PR お待ちしています。