Rails-2.3.
基本的にはこれを script/plu
すれば良いのですが、ConsiderLo
具体的には、以下のファイルの self.inclu
あとはREADME通りに設定して、ConsiderLo
Rails-2.3.
基本的にはこれを script/plu
すれば良いのですが、ConsiderLo
具体的には、以下のファイルの self.inclu
あとはREADME通りに設定して、ConsiderLo
GitリポジトリのRailsプラグインをインストールするときに、
標準では master ブランチがインストールされますが、
特定のブランチの内容をインストールしたい場合には、以下のように -r
オプションを使用します。
1 script/plugin install --force https://gi thub.com/r ails/excep tion_notif ication.gi t -r 2-3-stable
上記の例では 2-3-stable
ちょっと調べ物。オープンソースのアドサーバー
OpenX Ad Server
ASB MyAds
結構長いことredmineを使ってるのですが、wikiのサイドバーを作れることに最近気が付きました。
作り方は単純で Sidebar
という名前のページを作ればok.
サイドバーに入れる場合、見出しは h3
が良さそうです。
iftopコマンドを使うと、特定のインターフェイス/ポート番号における通信量を調べることができます。
ローカルのポート1234への通信量を調べる例:
1 iftop -i lo -B -f "dst port 1234"
転送されるデータ量を測定してチューニング、使ってるか使ってないかわからないサーバプロセスの発見などに使えます。
ubunut/deb
1 # apt-get install iftop
でインストールできます。
spec_helpeRSpec.conf
を呼び出している場合、
以下のような警告が出てくることがあります。
1 ****************************************************** 2 DEPRECATION WARNING: you are using deprecated 3 behaviour that will be removed from RSpec 3. 4 5 You have set some configurat ion options after an 6 example group has already been defined. In RSpec 3, 7 this will not be allowed. All configurat ion should 8 happen before the first example group is defined. 9 The configurat ion is happening at: 10 11 /path/to/a pp/spec/sp ec_helper. rb:50 12 ******************************************************
これは spec_helpe
そもそも Ruby の require は一度しかファイルを読み込まないように なっていますが、読み込んだかどうか判定する基準となるのが 読み込み対象のファイルの絶対パスではなく、require に渡された引数であるため、同じファイルをrequireしてもパスの指定の仕方によって何度も読み込まれてしまうのです。
そこで、以下のように spec_helpe
1 $LOADED_FEATURES.push File.expand_pat h(__FILE__) 2 def require(path) 3 path = File.expand_pat h(path) if path =~ %r{^[./]} 4 super path 5 end
require を上書きして引数が "." か "/" で始まっている場合に expand_pat
rake gems:unpac
などでvender/gem
以下にunpackしたgemとbundlerを併用したい場合があります。
最近では、locale_rai
こんな場合には、Gemfile にて
1 gem 'locale_rails', '=2.0.5', :path => 'vendor/gem s/locale_r ails-2.0.5 '
というように記述しておけば、unpack したgemを使ってくれます。 第二引数のversionは必須っぽいのでご注意。
bundlerを使うとRubyアプリケーションごとに閉じたgemの依存関係を構築できるので、gemのバージョンの違いや環境ごとの違いで悩まされることが減ります。 これは非常に便利なのですが、rakeやunicornのようにコマンドをインストールするgemの場合、
1 % bundle exec unicorn
のように、bundle exec
を介して実行する必用があって面倒です。
しかし、rvmを使えばこれを賢く解決できます。
比較的新しめのrvmとbundlerが必用になるので、 あらかじめ最新版をインストールしておいてください。
まず、以下のように適当なアプリケーション名などでgemsetを作ります。
1 % rvm gemset create foo-app
作成したgemsetは
1 % rvm gemset use foo-app
のようにしてアクティベートできます。新規に作成したgemsetの中身は こんな感じになっています。
1 % gem list 2 3 *** LOCAL GEMS *** 4 5 bundler (1.0.2) 6 rake (0.8.7)
bundler-1.gem udpate
して最新のbundlerにします。
この状態であらかじめ用意しておいたGemfileに従ってgemをインストールします。
1 % bundler install --system
これで foo-app gemset にはGemfileで指定したgem群が入った状態になり、rake, unicornなどのコマンド群もrvmがいい感じに取り計らってくれます。
あとは、rvm gemset use xxx
を使えば適宜必用なgem環境を切り替えることができます。
ただ、アプリケーションが複数ある場合に、頻繁にgem環境を切り替えるのは面倒です。 アプリケーションのrootディレクトリに .rvmrc というファイルを作って
1 rvm use ruby-1.8.7-p302@foo-app
のように記述しておいておくと、cd した時にrvmが勝手にgemsetを切り替えてくれます。これで完璧ですね!
Bye bye gem hell!
Rubyはメソッド定義内で begin/end が無くても直接rescueやensureを記述できますが、これは無駄な記述を減らす上でとても魅力的な文法だと思います。
1 def foo 2 puts "hello world :-)" 3 rescue 4 puts "something wrong :'-(" 5 end
この書き方のまま、所定回数だけretryしたい場合、retry回数を覚えておくカウンタ変数を用意する場所に困ったりするのですが (ローカル変数として定義すると、retry後に再初期化されてしまいますからね) 以下のように引数として用意しておくと、methodが定義するブロックよりも外側のライフタイムを持つので、retryカウンタとして使えます。
1 def foo(bar = 0) 2 puts bar 3 raise 4 rescue 5 bar += 1 6 retry if bar < 10 7 end 8 9 foo
実行した結果は以下の通り
1 0 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 8 10 9
request.ho
1 location / { 2 # ..snip.. 3 4 proxy_redirect off; 5 proxy_set_ header Host $host; 6 proxy_set_ header X-Real-IP $remote_add r; 7 proxy_set_ header X-Forwarde d-For $proxy_add_ x_forwarde d_for; 8 9 # ..snip.. 10 }
ちょっと設定を忘れていてRSS中のGUIDがlocalhsotを指すという問題が発生しておりました。現在は復旧しております。 ご不便をおかけいたしましたことをお詫びいたします。