一回生成したインスタンスを全体で使い回ししたい
具体的に言うとTwitter::REST::Client
で、毎度生成するみたいなのはなんか不経済な気がする。
Java方面から来たので、Springならconfigクラスで@Bean
にしてってなもんですが、そんな感じのことをやりたい。
moduleを使ってみる
twitter_holder.rb
# frozen_string_literal: true
module TwitterHolder
def self.client
@client ||= Twitter::REST::Client.new do |config|
config.consumer_key = ''
config.consumer_secret = ''
config.access_token = ''
config.access_token_secret = ''
end
end
end
これでTwitterHolder.cilent
で使う形にしてみた。
singletonモジュールは使わないのか?
include Singleton
したとしても、結局同じインスタンスが返される処理は自分で書く必要があるはず。
あとTwitterHolder.instance.client
といった感じで、長い!
であればクラスメソッドでいいんじゃないかと思ったんですが、さて……