2023-07-01から1ヶ月間の記事一覧
Rubyを業務で書き始めて3年目になりますが、まだまだ知らないことばかりだなぁと思わされます。 先々週に届いたRubyWeeklyに構造体(struct)について解説している記事が紹介されており、気になったので記事を読んでみるとOpenStructという自分が全く知らない…
ある日のこと、業務中にチームメンバーから非常に面白い質問がありました。 「インスタンス作成時の値によって関数の定義を変えることって可能ですかね?」 ...とのことです。 どういうことかをもう少し詳しく聞いてみると、以下のようなイメージを持ってい…
いつものようにプロダクトのコードを読んでいた時のことです。 コード内に「Aを変更したらBも変更してね」という旨のコメントがいくつか記載されていることに気づきました。 def do_something # ここを変更したらlibのdo_somethingも変更すること : end この…
前回、RuboCopの処理を追いかけました。 長い旅になりましたが、なんとかRuboCopのコマンドが実行されてから画面に結果が出力されるまでの流れを完全に理解しました。せっかくコードを読んだわけなので何かしらの変更が出来ないか試してみたいと思います。 …
Rubyには標準出力するための関数が複数、用意されています。 今更感はありますが、自分が把握しているだけでも5つも関数がなり、一体、何が違うのやら...。 puts p pp print printf それぞれの出力結果を見比べながら、どのように使い分けるべきかを考察して…
バージョンアップによって既存コードが動かなくなる(エラーになる)という現象に初めて遭遇しました。 話には聞くものの、経験したことがなかったので「本当にあるんだ...」と謎に嬉しい気持ちになりました。 バージョンアップをしたのはRuby本体のバージョン…
※この記事はRuboCopの内部実装を読んでみるシリーズの第2記事です。 前回の記事でターミナルでrubocopコマンドを実行するとRuboCop::CLIクラスのrunが呼び出されて、紆余曲折あって各Copのチェックがコールバックとして呼び出されていることが判明しました。…
※この記事はRuboCopの内部実装を読んでみるシリーズの第1記事です。 ある日のこと、いつものようにRuboCopに怒られた際に「RuboCopってどうやって作られてるのかな...」と唐突に気になってしまったのでコードを読んでみることにしました。最初は数日あれば終…
後に改めて記事を書きますが、最近はRubocopのコードを読み進めています。 そんな中で「面白いなぁ...」と感じたコードがあったので紹介がてら動作を確認してみたい思います。 なんと定義されたクラスがArrayクラスを継承させているではありませんか。 modul…
昨日、Ruby東海 第79回 勉強会に参加させて頂きました。 主催者・参加者のみなさん、お疲れ様でした。非常に楽しい時間を過ごさせて頂きました。 rubytokai.doorkeeper.jp オフラインの勉強会に最後に行ったのが、コロナウイルスが流行り出す前だったので実…