Module: Makuri::Spider
- Defined in:
- lib/makuri/spider.rb
Overview
Include this module in your spider class
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#response ⇒ Object
Returns the value of attribute response.
-
#start_urls ⇒ Object
Returns the value of attribute start_urls.
Class Method Summary collapse
Instance Method Summary collapse
- #absolute_url(relative_url) ⇒ Object
- #browser ⇒ Object
- #initialize(start_urls) ⇒ Object
- #parse ⇒ Object
- #request_to(handler, **params) ⇒ Object
Instance Attribute Details
#response ⇒ Object
Returns the value of attribute response.
28 29 30 |
# File 'lib/makuri/spider.rb', line 28 def response @response end |
#start_urls ⇒ Object
Returns the value of attribute start_urls.
28 29 30 |
# File 'lib/makuri/spider.rb', line 28 def start_urls @start_urls end |
Class Method Details
.included(base) ⇒ Object
10 11 12 |
# File 'lib/makuri/spider.rb', line 10 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#absolute_url(relative_url) ⇒ Object
57 58 59 |
# File 'lib/makuri/spider.rb', line 57 def absolute_url(relative_url) Addressable::URI.join(browser.current_url, relative_url).to_s end |
#browser ⇒ Object
36 37 38 |
# File 'lib/makuri/spider.rb', line 36 def browser @browser ||= Makuri::Browser.new end |
#initialize(start_urls) ⇒ Object
30 31 32 33 34 |
# File 'lib/makuri/spider.rb', line 30 def initialize(start_urls) @start_urls = start_urls update_response(@start_urls[0]) end |
#parse ⇒ Object
40 41 42 |
# File 'lib/makuri/spider.rb', line 40 def parse raise NotImplementedError, "Define #parse method for #{self.class}." end |
#request_to(handler, **params) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/makuri/spider.rb', line 44 def request_to(handler, **params) if valid_url? params[:url] update_response(params[:url]) params.delete :url end if params.empty? public_send handler else public_send handler, params end end |