akadama

そこらへんにいるプログラマが適当にやってます

env_http_proxy.gem をリリースしました

env_http_proxy | RubyGems.org | your community gem host
chiastolite/env_http_proxy · GitHub

簡単に言うと「環境変数にhttp_proxyが設定されていた場合、Net::HTTP.newが呼ばれた際にはそのプロキシを利用するように強制するライブラリ」です。

会社ではプロキシを設定しないと外に出れないのですが、そのせいでプロキシを考慮してないプログラムが動かなくストレスフルな生活をしていました。これで平穏な日常に戻れる気がします。

Padrinoで使ってみる

Padrinoでプロキシ対応してないのはプラグインリストの表示

1
2
3
4
bundle exec padrino gem plugin -l

/Users/chiastolite/.rbenv/versions/1.9.3-p385/lib/ruby/1.9.1/net/http.rb:762:in `initialize': Operation timed out - connect(2) (Errno::ETIMEDOUT)
()

Gemfileに以下の行を追加してbundle installを実行

1
gem 'env_http_proxy', group: 'development'

環境変数 http_proxyを設定

1
export http_proxy=http://proxy.example.com:8080/

再度プラグインリストの表示を行います

1
2
3
4
5
6
7
8
9
10
11
bundle exec padrino gem plugin -l

Available plugins:
  - ["960"]
  - ["access"]
  - ["ar_permalink_i18n"]
  - ["ar_permalink"]
  - ["ar_textile"]
  - ["ar_translate"]
  - ["auto_locale"]
  (以下略)

動いてますね
プロキシが対応していないライブラリ/プロダクトってのは結構多く、毎回PullRequest出すのも大変なのでとりあえずこれでしのげればいいなと思います