Class: Indexmap::TaskRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/indexmap/task_runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(configuration: Indexmap.configuration) ⇒ TaskRunner

Returns a new instance of TaskRunner.



7
8
9
# File 'lib/indexmap/task_runner.rb', line 7

def initialize(configuration: Indexmap.configuration)
  @configuration = configuration
end

Instance Method Details

#createObject



11
12
13
14
15
# File 'lib/indexmap/task_runner.rb', line 11

def create
  remove_existing_sitemap_files
  configuration.writer.write
  {files: sitemap_files, index_now_key_path: write_index_now_key}
end

#formatObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/indexmap/task_runner.rb', line 17

def format
  sitemap_files.each do |file_path|
    content = File.read(file_path)
    document = Nokogiri::XML(
      content,
      nil,
      nil,
      Nokogiri::XML::ParseOptions::DEFAULT_XML | Nokogiri::XML::ParseOptions::NOBLANKS
    )
    save_options = Nokogiri::XML::Node::SaveOptions::FORMAT | Nokogiri::XML::Node::SaveOptions::AS_XML

    File.write(file_path, document.to_xml(indent: 2, save_with: save_options))
  end

  sitemap_files
end

#public_pathObject



46
47
48
# File 'lib/indexmap/task_runner.rb', line 46

def public_path
  configuration.public_path
end

#validateObject



34
35
36
37
# File 'lib/indexmap/task_runner.rb', line 34

def validate
  Validator.new(configuration: configuration).validate!
  sitemap_files
end

#write_index_now_key(generate_if_missing: false) ⇒ Object



39
40
41
42
43
44
# File 'lib/indexmap/task_runner.rb', line 39

def write_index_now_key(generate_if_missing: false)
  pinger = Pinger::IndexNow.new(configuration: configuration)
  return pinger.ensure_key_file if generate_if_missing

  pinger.write_key_file
end