Class: Crawlscope::Task

Inherits:
Object
  • Object
show all
Defined in:
lib/crawlscope/task.rb

Instance Method Summary collapse

Constructor Details

#initialize(configuration: Crawlscope.configuration, reporter: Reporter.new(io: configuration.output)) ⇒ Task

Returns a new instance of Task.



7
8
9
10
# File 'lib/crawlscope/task.rb', line 7

def initialize(configuration: Crawlscope.configuration, reporter: Reporter.new(io: configuration.output))
  @configuration = configuration
  @reporter = reporter
end

Instance Method Details

#validate(base_url: nil, sitemap_path: nil, rule_names: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/crawlscope/task.rb', line 12

def validate(base_url: nil, sitemap_path: nil, rule_names: nil)
  resolved_base_url = base_url || default_base_url
  audit = @configuration.audit(
    base_url: resolved_base_url,
    sitemap_path: sitemap_path || default_sitemap_path(base_url: resolved_base_url),
    rule_names: rule_names
  )

  result = audit.call
  @reporter.report(result)
  result
end

#validate_ldjson(urls:, debug: false, renderer: @configuration.renderer, timeout_seconds: @configuration.timeout_seconds, report_path: nil, summary: false) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/crawlscope/task.rb', line 25

def validate_ldjson(urls:, debug: false, renderer: @configuration.renderer, timeout_seconds: @configuration.timeout_seconds, report_path: nil, summary: false)
  audit = StructuredData::Audit.new(
    browser_factory: @configuration.browser_factory,
    network_idle_timeout_seconds: @configuration.network_idle_timeout_seconds,
    renderer: renderer,
    schema_registry: @configuration.schema_registry,
    scroll_page: @configuration.scroll_page?,
    timeout_seconds: timeout_seconds
  )
  result = audit.call(urls: urls)

  report_ldjson_result(result, debug: debug, renderer: renderer)
  StructuredData::Writer.new(path: report_path).write(result) if report_path
  StructuredData::Reporter.new(io: @configuration.output, report_path: report_path).report(result) if summary
  result
end