-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add_client_file_and_gem_nokogiri #2
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Напиши пожалуйста, пример использования этого гема:
Что мне набрать в консоли, чтобы посмотреть, как он работает?
lib/fragment_catcher/client.rb
Outdated
end | ||
|
||
def get | ||
if page |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мы договорились, что:
get возвращает true или false в зависимости от результата (см. #success?)
lib/fragment_catcher/client.rb
Outdated
end | ||
|
||
def code | ||
open(url).status.first |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Запрос урла должен быть совершен один раз. Up, а у тебя - здесь (#code) и в #page
Up: Отредактировал сообщение.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не придумал как по-другому. Добавив один метод на получение файла через open-uri избавился от дубля. Может можно лучше сделать, пока думаю
чтобы он заработал надо будет набрать в консоли такую конструкцию: FragmentCatcher::Client.new(url: url, css: css) |
У нас по условию, никакого класса Client нет:
|
по поводу кода http. Другого способа кроме разбивки на метод не нашел. Nokogiri не предоставляет данный функционал. Можно было использовать mechanize для этого, там есть возможность сразу получить head и code |
lib/fragment_catcher/client.rb
Outdated
end | ||
|
||
def body | ||
page.at('body').inner_html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
body возвращает не html body, а тело ответа https://en.wikipedia.org/wiki/HTTP_message_body
т.е. все равно что сделать в линукс консоли
GET http://127.0.0.1
Не понял фразы. Можешь переформулировать? В чем сейчас проблема? А то я не понимаю про что речь. Спасибо! |
lib/fragment_catcher/client.rb
Outdated
get_fragments | ||
end | ||
|
||
def success? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот метод можно заменить одной строчкой:
def success?
fragments.any?
end
lib/fragment_catcher/client.rb
Outdated
@css = css | ||
end | ||
|
||
def get |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Проведи оптимизацию этого метода пожалуйста.
|
А тесты проходят? |
да |
No description provided.