Ruby

IRB の補完機能の色を設定してみた

この記事は、所属している永和システムマネジメントのアドベントカレンダー ESM Advent Calendar 2023 の 2 日目の記事です。 はじめに 11月にリリースされた Reline の v0.4.0 から Reline::Face というクラスが登場しました。 github.com これによって、IR…

JSON型カラムをActiveRecord::Storeで使いやすくしてみる

今回はRails アプリケーションの開発でJSON型のカラムを扱った際に ActiveRecord::Store を使うと便利だったのでそのことについて共有します。 実行環境 以下の環境で試しました。 - Ruby 2.7.1 - Rails 6.0.3.2 - Postgres JSON型について PostgresqlではJS…

describeとRSpec.describeはどちらの書き方が良いのか

この記事は「ESM Advent Calendar 2021」の3日目の記事です。 adventar.org はじめに Railsアプリケーションをの開発でRSpecを使ってテストを書くことが多いです。私はRSpecを書くときに、トップレベルの階層の describe をdescribe ではなく RSpec.describe…

RubyからYoutubeAPIを使ってクラロワ動画を概要欄で絞り込んでみた

はじめに 私はクラッシュロワイヤル(通称クラロワ)というスマホゲームでよく遊んでいます。クラロワは8枚のカードでデッキを組んで相手と戦うカードゲームです。 clashroyale.com そのクラロワのスキルアップのために、 YouTube で 『Stats Royal』という…

FactoryBot 6.0 から enum の traits が自動生成されるようになった

はじめに 2020 年 6 月にリリースされていた FactoryBot バージョン 6.0.0 から ActiveModel の enum の列挙子ごとに traits が自動で作られるようになっていました。これについて技術記事があまりなかったので書いてみることにしました。 例えば以下のよう…

Ruby 3.0 で Hash のキーを別のキーに置換する方法

例えば {foo: 1, bar: 2, baz: 3} という Hash のキーのうち、 :baz を :foobar に置換して {foo: 1, bar: 2, foobar: 3} にしたいとします。 Ruby 2.7 以前の場合 Ruby 2.7 以前だと Hash#transform_keys のブロックの中で条件分岐させたりと少し面倒です。…

Ruby で使われる OpenSSL のバージョンを更新する

先日 OpenSSL 1.1.1i がリリースされ、それを反映した ruby-build のバージョンがリリースされていました。 Released ruby-build-v20201210 with OpenSSL-1.1.1i. This version supports M1 chip. So, you can build Ruby 2.7.2 and 3.0.0-preview with `arm…