Fix: can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

rbenv で複数 ruby バージョンが存在する環境下で bundle install しようとすると以下のエラーが出てしまいました。

1
can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
  • ruby バージョンは合ってる、
  • Gemfile もある、
  • gem install bundler して bundle もある ← ここがダメだった

けど、エラー

ちょいちょいハマってたので備忘録とりました。

続きを読む
Rails (gem 'sendgrid-ruby') × SendGrid の Event Notification で API Key ごとの独自メタ情報を設定する

Rails (gem 'sendgrid-ruby') × SendGrid の Event Notification で API Key ごとの独自メタ情報を設定する

SendGrid の Event Notification の使い所

SendGrid には Event Notification という Webhook を設定することでメールの送信状態をイベント情報として取得することができます。

メールを SendGrid が受信した、送信先に届いた、等の情報です。

SendGrid - メールが届いているか確認する

例えば、未達だったメールの情報を取得したい場合等に、この Webhook を利用し、イベント情報を保存することで調査や集計が可能です。

AWS API Gateway + Lambda で構築したエンドポイントに投げ、S3 に保存し、送信失敗件数を Athena で検索集計する、ということができます。

何か問題でも?

続きを読む
Rails に reCAPTCHA v3 導入して bot 対策
Rails × Redis でスレッドセーフなアクセス数ランキング実装
Linux に rbenv をセットアップして ruby バージョンを切り替える

Linux に rbenv をセットアップして ruby バージョンを切り替える

概要

サーバの ruby のバージョンが古かった為、
rbenv で ruby のバージョンを切り替える様にした際の設定メモです。

setup rbenv

1
2
3
4
5
6
7
8
9
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

$ source ~/.bash_profile
$ rbenv --version
rbenv 1.1.1-30-gc8ba27f

rbenv 経由で Ruby 2.5.0 インストール

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ rbenv install 2.5.0

// 現 version は system. まだ 2.5.0 に切り替わっていない
$ rbenv versions
* system (set by /home/vagrant/.rbenv/version)
2.5.0

// 2.5.0 へ切り替え
$ rbenv global 2.5.0

// 切り替え確認
$ rbenv versions
system
* 2.5.0 (set by /home/vagrant/.rbenv/version)

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

// リフレッシュしないと .rbenv/versions/2.5.0/bin 以下のパスを通らない
$ rbenv rehash

日本国内からアクセスされるIP取得スクリプト Ruby 30秒クッキング

まずスクリプト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ git clone https://gist.github.com/kenzo0107/714ece62cf6450386ff0fb16fd5b777a
$ cd 714ece62cf6450386ff0fb16fd5b777a
$ ruby getJapanIP.rb

1.0.16.0
1.0.64.0
1.1.64.0
1.5.0.0
...
中略
...
223.223.164.0
223.223.208.0
223.223.224.0

概要

作った経緯は
日本版・海外版URLがあり、
海外版に日本からアクセスした場合は
日本版サイトにリダイレクトさせたい、
という依頼があった為です。

このスクリプトを利用して
海外版サイト .htaccess等でリダイレクト設定をしました。

以上です。

Ruby & gem インストール

備忘録です。

環境

  • CentOS 5.8 (Final)

ruby 2.1.2 インストール

1
2
3
4
5
6
7
# cd /usr/local/src
# wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz
# tar xvfz ruby-2.1.2.tar.gz
# rm ruby-2.1.2.tar.gz
# cd ruby-2.1.2
# ./configure
# make; make install

gem インストール

1
2
3
4
# wget http://production.cf.rubygems.org/rubygems/rubygems-2.2.2.zip
# unzip rubygems-2.2.2.zip
# cd rubygems-2.2.2
# ruby setup.rb

以上

Ruby インストール on CentOS7

環境

  • AWS
  • CentOS Linux release 7.0.1406 (Core)

必要モジュールインストール

1
$ sudo yum -y install git libffi libffi-dev gcc openssl-devel readline-devel zlib-devel

rbenv, ruby-build ダウンロード

1
2
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenv PATH指定

1
2
3
4
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL
$ source ~/.bash_profile
1
2
3
4
5
6
7
8
9
10
11
12
$ rbenv install -list

Available versions:
:
:
2.0.0-p643
2.0.0-p645 ← 2.0.0の最新 (※2015/08/06時点)
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
:

ruby インストール

1
$ rbenv install -v 2.0.0-p645

再読込

1
$ rbenv rehash

インストールしたバージョンに切り替え

1
$ rbenv global 2.0.0-p645

確認

1
2
$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [x86_64-linux]

以上