Sha256: d1e93e66c92d8f6be523d4961158a3acdfaab6034e0228c6fd86bfd0fb93b3e1

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

module Retriever
  #
  class FetchSitemap < Fetch
    # recieves target URL and RR options
    # returns an array of all unique pages found on the site
    def initialize(url, options)
      super
      @data.push(@t.target)
      @data.concat(@link_stack)

      async_crawl_and_collect
      # done, make sure progress bar says we are done
      @progressbar.finish if @progress
      @data.sort_by! { |x| x.length } if @data.size > 1
      @data.uniq!
    end

    private

    # produces valid XML sitemap based on page collection fetched.
    # Writes to current directory.
    def gen_xml
      filename = @t.host.split('.')[1]
      f = File.open("sitemap-#{filename}.xml", 'w+')
      f << "<?xml version='1.0' encoding='UTF-8'?>"
      f << "<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>"
      @data.each do |url|
        f << "<url><loc>#{url}</loc></url>"
      end
      f << '</urlset>'
      f.close
      print_file_info(filename)
    end

    def print_file_info(filename)
      puts HR
      puts "File Created: sitemap-#{filename}.xml"
      puts "Object Count: #{@data.size}"
      puts HR + "\n"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubyretriever-1.2.3 lib/retriever/fetchsitemap.rb
rubyretriever-1.2.2 lib/retriever/fetchsitemap.rb
rubyretriever-1.2.1 lib/retriever/fetchsitemap.rb
rubyretriever-1.2.0 lib/retriever/fetchsitemap.rb