エポックミリ秒タイムスタンプを読み取り可能な日付時刻に変換する

JSON 形式の API 応答を処理したり、Web サイトに埋め込まれた JavaScript アセットを操作したりするなど、多くの場合、13 桁の長い数字を頻繁に目にします。おそらく、それが new Date().getTime() などのコードから生成されたエポック タイムスタンプであることはわかっていますが、人間にはそれがどの日付と時刻を表しているかをすぐには判断できません。Epoch Converter という便利な Web サイトがあり、これを人間が読める形式に簡単に変換できますが、開発者にとっては、Web サイトを開くよりもさらに迅速な方法があります。それは、多くのプログラミング言語に付属している インタラクティブ シェル を使用することです。

Ruby 3.0.5 にアップグレード

Ruby 3.0 には、多くの gem を使用する一般的な Rails アプリにとって大きな問題となるいくつかの重大な変更、特にキーワード引数の動作の重大な変更と URI.escape メソッドの削除が含まれていました。

Rails を 5.2 から 6.0 にアップグレードする

API 中心のアプリケーションの Rails バージョンを 5.2 から 6.0 にアップグレードする際に処理する必要がある主な事項には、構成のチューニングと非推奨の警告の修正が含まれます。

Ruby 2.7.6 にアップグレード

Ruby v2.7.6 は、この記事の執筆時点では v3.0 より前の最新バージョンであり、アプリケーションが BigDecimal に依存するライブラリを使用している場合、v2.7.6 にアップグレードすると重大な問題が発生する可能性があります。

Ruby の `defined?` はどこで定義されていますか?

Ruby の defined? がどこで定義されているのか疑問に思ったことはありませんか? メソッドのように見えるため、ObjectKernelBasicObject、さらには ClassModule など、さまざまな場所を調べようとするかもしれませんが、どの場所でも見つけることができません。まあ、気付くまではそうですが、答えは非常に簡単です。defined? はメソッドではなく、演算子またはキーワードです。

Rails サーバーを Unicorn から Puma に切り替える

Rails アプリでは、一般的に使用されている 2 つの一般的な Web サーバーのうち、unicorn はワーカー プロセスでリクエストを処理しますが、puma はプロセス ワーカーとスレッドの両方で処理できます。したがって、unicorn から puma に切り替えると、同時実行性が向上するだけでなく、メモリ使用量も削減できます。さらに、rails 5.0 以降、使用されるデフォルトの Web サーバーは puma です。

Rails を 5.1 から 5.2 にアップグレードする

アプリケーション Rails のバージョンを 5.1 から 5.2 にアップグレードするのは、4.2 から 5.05.0 から 5.1 よりもはるかに簡単です。処理する変更は非常に少なく、テストが失敗する可能性も低くなります。

数百万件のレコードをMySQLにインポートする方法

activerecord-import という gem を使用すると、大量のレコードを mysql テーブルにインポートする作業が簡単になります。この投稿では、それを実現する方法を説明します。

Rails を 5.0 から 5.1 にアップグレードする

アプリケーション Rails のバージョンを 5.0 から 5.1 にアップグレードするのは、マイナー バージョン アップデートだけなので、4.2 から 5.0 よりも簡単です。ただし、フレームワークの変更や古い gem 依存関係が原因で、対処すべき問題がまだかなり残っている可能性があります。

Ruby rspec

RSpec は Ruby で人気のあるテスト フレームワークです。

Rails の自動ロードはスレッドセーフではありません

Rails フレームワークは定数を自動ロードするため、developmenttest などの環境では、リクエストを処理する前にアプリがすべてをメモリにロードする必要がありません。ただし、自動ロードは Rails ではスレッドセーフではないことが知られています (少なくともバージョン 6 未満の場合)。また、pumawebrick などのスレッド サーバーを使用している場合は、複数のスレッドによって予期しない問題が発生する可能性が非常に高くなります。

Rails を4.2から5.0にアップグレード

Rails を新しいメジャー バージョンにアップグレードするのは難しい場合があります。フレームワーク自体に多くの重大な変更があったり、プロジェクトで使用されている多くの gem が廃止またはサポート対象外になったりする可能性があるためです。ただし、正しい手順で実行すれば、スムーズに進むこともあります。この記事では、API サーバーの Rails を 4.2.11 から 5.0.7.2 にアップグレードした最近の実践的な経験に基づいて手順を紹介します。プロジェクトの構成や依存関係によっては、プロジェクトごとにアップグレード手順が若干異なる場合があることにご注意ください。

クッキーを使用した Ruby http リクエスト

クッキーを使用した Ruby http リクエスト。

Ruby parallel gem の使用例

Ruby parallel gem の使用例。

Ruby rack

Rack は、Ruby の世界において Web フレームワーク (ruby on railssinatra) と Web サーバー (webrickpumaunicorn) 間のインターフェースを提供する gem です。

Ruby rake

Rake は Ruby の Make のようなタスク ランナーです。まず Rakefile で ruby​​ 構文でタスクのリストを定義し、次に rake コマンドでタスクを呼び出します。

Ruby bundler

Bundler は Ruby プロジェクトにおける依存関係管理用です。

Ruby gems

Ruby の「gem」は、再利用可能な Ruby アプリケーションまたはライブラリを含むソフトウェア パッケージです。

Ruby rbenv

rbenv は複数の Ruby バージョンを管理するためのもので、ここではよく使われるコマンドを簡単に参照できるようにまとめています。

Rubyの基礎

Rubyの基本を学ぶ。