Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open3.capture3({ENV_NAME: bar}, cmd) を検出するCop #10

Open
pocke opened this issue Nov 12, 2017 · 1 comment
Open

Open3.capture3({ENV_NAME: bar}, cmd) を検出するCop #10

pocke opened this issue Nov 12, 2017 · 1 comment

Comments

@pocke
Copy link
Contributor

pocke commented Nov 12, 2017

何が悪いかと言うと、Open3.capture3の最初の引数に渡されるHashは環境変数になるが、そのkeyはStringでなくてはいけない(Symbolはダメ)。

これを実行するとTypeErrorが出るけど、

/usr/lib/ruby/2.4.0/open3.rb:199:in `spawn': no implicit conversion of Symbol into String (TypeError)
	from /usr/lib/ruby/2.4.0/open3.rb:199:in `popen_run'
	from /usr/lib/ruby/2.4.0/open3.rb:95:in `popen3'
	from /usr/lib/ruby/2.4.0/open3.rb:258:in `capture3'
	from /tmp/tmp.TX9kZKubu5/test.rb:3:in `<main>'

みたいなエラーメッセージで若干分かりづらいので、RuboCopで検出したい。
エラーメッセージから分かる通り、spawnとか他のcaptureXも検出したい。

実装はそこまで難しくないと思う。
ただ、「実行したら必ずエラーが出るのにCopにする必要があるの?」といわれそうな気はする。
私は「このコードをテストで実行してない時でも、Copになっていれば気がつけて便利」と思っているので、追加するべきだと思っています。

@pocke pocke changed the title Open3.capture3({ENV_NAME: bar}, cmd) wp Open3.capture3({ENV_NAME: bar}, cmd) を検出するCop Nov 12, 2017
@pocke
Copy link
Contributor Author

pocke commented Nov 12, 2017

Style/StringHashKeys が Open3.capture3 では警告を出さないようにする変更も欲しい。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant