Class: Wayfarer::Networking::Ferrum
- Inherits:
-
Object
- Object
- Wayfarer::Networking::Ferrum
- Defined in:
- lib/wayfarer/networking/ferrum.rb
Instance Attribute Summary collapse
-
#browser ⇒ Object
readonly
Returns the value of attribute browser.
Class Method Summary collapse
Instance Method Summary collapse
- #body ⇒ Object
- #capybara ⇒ Object
- #fetch(url) ⇒ Object
- #free ⇒ Object
-
#initialize ⇒ Ferrum
constructor
A new instance of Ferrum.
- #live(_) ⇒ Object
- #renew ⇒ Object
Constructor Details
#initialize ⇒ Ferrum
Returns a new instance of Ferrum.
12 13 14 |
# File 'lib/wayfarer/networking/ferrum.rb', line 12 def initialize @browser = instantiate_browser end |
Instance Attribute Details
#browser ⇒ Object (readonly)
Returns the value of attribute browser.
10 11 12 |
# File 'lib/wayfarer/networking/ferrum.rb', line 10 def browser @browser end |
Class Method Details
.renew_on ⇒ Object
6 7 8 |
# File 'lib/wayfarer/networking/ferrum.rb', line 6 def self.renew_on [::Ferrum::DeadBrowserError] end |
Instance Method Details
#body ⇒ Object
28 29 30 |
# File 'lib/wayfarer/networking/ferrum.rb', line 28 def body browser.body end |
#capybara ⇒ Object
44 45 46 |
# File 'lib/wayfarer/networking/ferrum.rb', line 44 def @capybara ||= end |
#fetch(url) ⇒ Object
16 17 18 19 |
# File 'lib/wayfarer/networking/ferrum.rb', line 16 def fetch(url) browser.goto(url) Result::Success.new(live(nil)) end |
#free ⇒ Object
37 38 39 40 41 42 |
# File 'lib/wayfarer/networking/ferrum.rb', line 37 def free browser&.reset browser&.quit @browser = nil @capybara = nil end |
#live(_) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/wayfarer/networking/ferrum.rb', line 21 def live(_) Wayfarer::Page.new(url: browser.current_url, body: body, status_code: browser.network.response.status, headers: browser.network.response.headers) end |
#renew ⇒ Object
32 33 34 35 |
# File 'lib/wayfarer/networking/ferrum.rb', line 32 def renew free @browser = instantiate_browser end |