У меня есть следующие методы для одной модели, и может быть больше.У меня также может быть часть повторяющегося кода в помощнике.Как я могу сделать его СУХИМ?
25 def full_name
26 client = LinkedIn::Client.new(ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'])
27 client.authorize_from_access(self.atoken, self.asecret)
28 client.profile(id => self.uid)
29 client.profile.first_name + " " + client.profile.last_name
30 end
31
32 def image_url
33 client = LinkedIn::Client.new(ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'])
34 client.authorize_from_access(self.atoken, self.asecret)
35 client.profile(id => self.uid)
36 client.profile(:fields => "picture-url").picture_url
37 end
Код, в котором я создаю экземпляр клиента и в большинстве случаев обращаюсь к идентификатору профиля, повторяется каждый раз, когда мне нужно вызвать метод в API.Изменяется только API.
Что происходит, когда мне также необходимо вызвать контроллер (другой модели?)
29 if @review.save
30 flash[:notice] = "Successfully created review."
31 # check if allowed to post to LinkedIn and post
32 if @review.post_linkedin?
33 client = LinkedIn::Client.new(ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET'])
34 client.authorize_from_access(current_user.atoken, current_user.asecret)
35 debugger
36 client.update_network("has shared expertise on <a")
37 end
Как сделать его более сухим?