Я создал класс службы, где единственное задание - получить имя человека в LinkedIn. Для этого я использую Mechanize
.Не удалось выяснить, как получить данные из класса сервиса
class LinkedinProfile
attr_reader :page
def initialize(url)
@page = url
end
def run
agent = Mechanize.new
agent.log = Mechanize.new 'mech.log'
agent.user_agent_alias = 'Mac Safari'
linkedin_page = agent.get(@page)
first_name ||= linkedin_page.at(".fn").text.split(" ", 2)[0].strip if linkedin_page.at(".fn")
end
end
Мое предположение заключается в том, что ruby возвращает последнюю строку, но я ошибаюсь в этом случае. Я пытаюсь найти способ, чтобы восстановить его после того, как я бегу
liprofile = LinkedinProfile.new('url')
по существу что-то вроде
liprofile.first_name
является предпочтительным, таким образом, я был бы нужен новый метод, но я не уверен в как добиться этого.
услуги часто реализуются с 'perform', а не' 'call' или run' :) –
@AndreyDeineko, я никогда не видел, прежде чем выполнять, - я думаю, до тех пор, как вы поддерживать внутреннюю согласованность, это не имеет значения. Вы можете назвать свой метод #do_it! если вы действительно хотели: P – dax