Module: Crawlscope::RakeTasks

Defined in:
lib/crawlscope/rake_tasks.rb

Class Method Summary collapse

Class Method Details

.ldjson(urls: nil) ⇒ Object



11
12
13
# File 'lib/crawlscope/rake_tasks.rb', line 11

def ldjson(urls: nil)
  run("ldjson", argv: ldjson_argv(urls: urls))
end

.ldjson_argv(urls:) ⇒ Object



32
33
34
# File 'lib/crawlscope/rake_tasks.rb', line 32

def ldjson_argv(urls:)
  Array(urls).flat_map { |url| option_pair("--url", url) }.compact
end

.option_pair(name, value) ⇒ Object



36
37
38
39
40
41
# File 'lib/crawlscope/rake_tasks.rb', line 36

def option_pair(name, value)
  value = value.to_s.strip
  return if value.empty?

  [name, value]
end

.run(command, argv: []) ⇒ Object



19
20
21
22
# File 'lib/crawlscope/rake_tasks.rb', line 19

def run(command, argv: [])
  status = Cli.start([command, *argv], out: $stdout, err: $stderr)
  exit(status) unless status.zero?
end

.validate(url: nil, sitemap_path: nil, rule_names: nil) ⇒ Object



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

def validate(url: nil, sitemap_path: nil, rule_names: nil)
  run("validate", argv: validate_argv(url: url, sitemap_path: sitemap_path, rule_names: rule_names))
end

.validate_argv(url:, sitemap_path:, rule_names:) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/crawlscope/rake_tasks.rb', line 24

def validate_argv(url:, sitemap_path:, rule_names:)
  [
    option_pair("--url", url),
    option_pair("--sitemap", sitemap_path),
    option_pair("--rules", rule_names)
  ].compact.flatten
end

.validate_rule(rule, url: nil, sitemap_path: nil) ⇒ Object



15
16
17
# File 'lib/crawlscope/rake_tasks.rb', line 15

def validate_rule(rule, url: nil, sitemap_path: nil)
  validate(url: url, sitemap_path: sitemap_path, rule_names: rule)
end