2011-07-12 15 views
3

私は100%の確信がありますが、レールの世界には比較的新しいので、私が猿のパッチで遠すぎると、この場合は適用されません。モンキー(多分?)宝石を私のレールに貼り付けるアプリ

私は短縮URLを長くするLongURLという宝石を使用しています。デフォルトでは、この宝石はlongurl.orgを使用していますが、私たちは1日に数十万のURLをプッシュし、誰もがそのサービスを内部的に持ってくることがより良いと考えました。私は自分のURLを指すように2つの定数を変更する必要があります。軽微な変更はフォークの価値があるように

module LongURL 
    ShortURLMatchRegexp = /http:\/\/[\/\-_.a-z0-9]+/im 

    # Urls for longurl 
    EndPoint  = URI.parse("http://api.longurl.org/v1/expand") 
    ServiceEndPoint = URI.parse("http://api.longurl.org/v1/services") 
end 

それは慣用的ないくつかの良い、レールが何をしている、いないようだ?このような軽微な変更を行うに近づきましたか?

おかげ

答えて

6

あなたが新しいものを再適用、その後、最初に古いものを削除する必要があります定数を再定義しています。あなたのパッチは、次のようになります。これは、既存のconstを再定義に関する警告を回避するのに役立つはずです

module LongURL 
    remove_const(:ShortURLMatchRegexp) 
    ShortURLMatchRegexp = /http:\/\/[\/\-_.a-z0-9]+/im 

    # ... (etc) ... 
end 

それをRailsyにするには、config/initializersに入れて、明らかに、おそらくlongurl_monkeypatch.rbというラベルが付いていることを確認してください。どんな種類のハッカーが起こっているのか混乱はありません。

関連する問題