いくつかの方法がありますが、それに行うが、一般的に、私は以下の原則に固執します。彼らはあなたが
彼らをインスタンス化する必要があるクラスですGeonamesClient
またはGeonamesWrapper
のような名前を持っている彼らは/lib
に住んで
- (あなたは多くを持っている場合、あなたは
/lib/clients
サブディレクトリを作成する場合があります)
- 基本クラスから継承する(または、おそらくいくつかの基本機能をミックスイン)も
- HTTPartyしばしば
に行くには良い方法です例。
class ClientBase
# maybe we pass in a logger, or something
def initialize(options={})
end
# perhaps a central way to call the api
def call(method_name, *args)
end
end
class GeonamesClient < ClientBase
base_uri "www.geonames.org"
def postal_codes(country)
...
end
end
次に、インスタンス化して呼び出します。 (クライアント間で何らかの状態を維持できる可能性があります)
client = GeonamesClient.new(:logger => Address.logger)
client.countries.each do |country|
client.postal_codes(country)
end