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
16
17
# File 'lib/indexmap/task_runner.rb', line 11

def create
  written_files = Indexmap.create(configuration: configuration)
  index_now_key_path = write_index_now_key
  configuration.run_after_create_callbacks

  {files: written_files.map(&:to_s), written_files: written_files, index_now_key_path: index_now_key_path}
end

#formatObject



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

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



48
49
50
# File 'lib/indexmap/task_runner.rb', line 48

def public_path
  default_output.public_path
end

#validateObject



36
37
38
39
# File 'lib/indexmap/task_runner.rb', line 36

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

#write_index_now_key(generate_if_missing: false) ⇒ Object



41
42
43
44
45
46
# File 'lib/indexmap/task_runner.rb', line 41

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