Class: BrowserCrawler::Reports::Store
- Inherits:
-
Object
- Object
- BrowserCrawler::Reports::Store
- Defined in:
- lib/browser_crawler/reports/store.rb
Overview
It involves methods which allow to save data to a store structure
Instance Attribute Summary collapse
-
#crawler_error ⇒ Object
readonly
Returns the value of attribute crawler_error.
-
#error ⇒ Object
Returns the value of attribute error.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#pages ⇒ Object
readonly
Returns the value of attribute pages.
-
#unrecognized_links ⇒ Object
readonly
Returns the value of attribute unrecognized_links.
Instance Method Summary collapse
- #finish ⇒ Object
-
#initialize(pages: {}, metadata: {}, started_at: nil, finished_at: nil) ⇒ Store
constructor
A new instance of Store.
- #record_crawler_error(link:, error:) ⇒ Object
- #record_page_visit(page:, extracted_links: nil, screenshot_filename: nil, error: nil, external: false, code: nil) ⇒ Object
- #record_unrecognized_link(link) ⇒ Object
- #start(url:) ⇒ Object
- #to_h ⇒ Object
- #visited_pages ⇒ Object
Constructor Details
#initialize(pages: {}, metadata: {}, started_at: nil, finished_at: nil) ⇒ Store
Returns a new instance of Store.
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/browser_crawler/reports/store.rb', line 39 def initialize(pages: {}, metadata: {}, started_at: nil, finished_at: nil) @pages = pages = @started_at = started_at @finished_at = finished_at @crawler_error = {} @unrecognized_links = [] end |
Instance Attribute Details
#crawler_error ⇒ Object (readonly)
Returns the value of attribute crawler_error.
36 37 38 |
# File 'lib/browser_crawler/reports/store.rb', line 36 def crawler_error @crawler_error end |
#error ⇒ Object
Returns the value of attribute error.
37 38 39 |
# File 'lib/browser_crawler/reports/store.rb', line 37 def error @error end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
36 37 38 |
# File 'lib/browser_crawler/reports/store.rb', line 36 def end |
#pages ⇒ Object (readonly)
Returns the value of attribute pages.
36 37 38 |
# File 'lib/browser_crawler/reports/store.rb', line 36 def pages @pages end |
#unrecognized_links ⇒ Object (readonly)
Returns the value of attribute unrecognized_links.
36 37 38 |
# File 'lib/browser_crawler/reports/store.rb', line 36 def unrecognized_links @unrecognized_links end |
Instance Method Details
#finish ⇒ Object
57 58 59 |
# File 'lib/browser_crawler/reports/store.rb', line 57 def finish @finished_at = Time.now end |
#record_crawler_error(link:, error:) ⇒ Object
94 95 96 97 98 99 |
# File 'lib/browser_crawler/reports/store.rb', line 94 def record_crawler_error(link:, error:) @crawler_error[link] = { message: error., backtrace: error.backtrace } end |
#record_page_visit(page:, extracted_links: nil, screenshot_filename: nil, error: nil, external: false, code: nil) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/browser_crawler/reports/store.rb', line 79 def record_page_visit(page:, extracted_links: nil, screenshot_filename: nil, error: nil, external: false, code: nil) @pages[page] = { screenshot: screenshot_filename, error: error, extracted_links: extracted_links, code: code, external: external } end |
#record_unrecognized_link(link) ⇒ Object
73 74 75 76 77 |
# File 'lib/browser_crawler/reports/store.rb', line 73 def record_unrecognized_link(link) return if @unrecognized_links.include?(link) @unrecognized_links << link unless @unrecognized_links.include?(link) end |
#start(url:) ⇒ Object
51 52 53 54 55 |
# File 'lib/browser_crawler/reports/store.rb', line 51 def start(url:) @pages.clear @started_at = Time.now [:url] = url end |
#to_h ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/browser_crawler/reports/store.rb', line 61 def to_h {}.merge(pages: @pages) .merge() .merge( unrecognized_links: @unrecognized_links, crawler_error: @crawler_error, started_at: @started_at, finished_at: @finished_at, links_count: count_all_links ) end |
#visited_pages ⇒ Object
101 102 103 |
# File 'lib/browser_crawler/reports/store.rb', line 101 def visited_pages @pages.keys end |