Railsで文字列のバージョンを比較する

StringのVersion情報 "2.1.1""2.2.0" などと比較したい

Gem::Version を使うことで比較できる

p "1.9" < "1.10" # => false
p Gem::Version.new("1.9") < Gem::Version.new("1.10") # => true

文字列にも対応。便利。

"1.1.beta9" と "1.1.beta10" では、"beta9" と "beta10" の部分だけが違いますが、アルファベット部分と数字部分が分割され、数字部分は整数の大小比較になるため、後者のほうが大きいと判定されます。

docs.ruby-lang.org

Windows WSLで時刻を同期させる

date をすると過去日付が返ってきてしまい、AWSでも RequestTimeTooSkewed エラーが返ってきてしまったので対応メモ

# 2020/7/8実行
$ date
202074日 土曜日 15:02:22 JST
~/work/rails/tsukulink (master)
$ ntpdate
 4 Jul 15:02:44 ntpdate[4968]: no servers can be used, exiting
$ aws s3 ls
An error occurred (RequestTimeTooSkewed) when calling the ListObjectsV2 operation: The difference between the request time and the current time is too large.

対応

sudo ntpdate ntp.nict.jp

Windows WSLのUbuntuにRedisをインストールする

開発環境をWindowsにしたので環境構築のメモ

# redis-serverのインストール
sudo apt  install redis-server

# redis の再起動
sudo service redis-server restart

# 自動起動設定
systemctl enable redis-server 

Windows WSLのUbuntuにPostgreSQLをインストールする

開発環境をWindowsにしたので環境構築のメモ

# PGのインストール
sudo apt install postgresql

# 起動
sudo service postgresql start

# 自動起動設定
systemctl enable postgresql

# PG用ユーザーの作成
sudo -u postgres -i
createuser -d -U postgres -P user

# psqlに入る
psql -d postgres

# なにか作業があれば。。。