私はtelegram-bot
宝石を使用しています。それはTelegram
と呼ばれるモジュールを持っています。私はそれを拡張して、最も一般的な呼び出しのためのショートカットとして1つのメソッドを追加したいと思います。すでに宝石に存在するモジュールを要求する方法は?猿のパッチの種類
作成する方法は、デフォルト設定のTelegram.send_message(text)
です。コンソール上で、私はそれが未定義のメソッドを言うTelegram.send_message
を実行した場合
module Telegram
def self.send_message(text, options={})
#...
end
end
:
はそうするために私は、元のモジュールを拡張app/models/telegram.rb
に
telegram.rb
ファイルを追加しました。私は
require 'telegram'
を行う場合
send_message
方法が機能するようになりました、(私はすでに
Telegram
宝石上の(1)と呼ばれるモジュールがあるように、そのが自動的にロードしませ思います。今、私はアプリの初期化時に、それを必要とする場合、
は、私が最初に試したことはあります私application.rb
に必要と追加が、私はLOAD_PATHはまだapp/models
を含んでいないと思い、ので、それは、cannot load such file
言います。私は?
別の方法としては、TelegramBot
のように、それを別の名前を与えるだろう必要が追加することができます
。しかし、私はTelegram
のアイデアが好きではありませんd TelegramBot
。
app/models
の代わりにinitializers
に追加する方法もあります。しかし、私はフォルダは設定のためのものだと思う。
これを行うには、どのような方法が最適ですか?
おかげで、私はこの素敵なを読んでいました記事http://www.justinweiss.com/articles/3-ways-to-monkey-patch-without-making-a-mess/そしてそれはまさにそれでした! –