class Govuk::Diff::Pages::PageSearcher
Public Class Methods
new(config, formats)
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 8 def initialize(config, formats) @config = config @formats = formats @pages = [] @url_checker = UrlChecker.new(@config) end
Public Instance Methods
run()
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 15 def run @formats.each do |format| puts "Getting top #{@config.page_indexer.max_pages_per_format} for format #{format}" if verbose? @pages << top_pages_for_format(format) end @pages.flatten! end
verbose?()
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 23 def verbose? @config.verbose end
Private Instance Methods
extract_top_govuk_pages(result_set)
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 34 def extract_top_govuk_pages(result_set) links = result_set.fetch('results').collect { |result| result['link'] } valid_links = links.select { |link| @url_checker.valid?(link) } valid_links.slice(0, @config.page_indexer.max_pages_per_format) end
result_set_for_format(format)
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 40 def result_set_for_format(format) url = "#{@config.domains.production}/api/search.json?filter_format=#{format}" RestClient.get(url) end
top_pages_for_format(format)
click to toggle source
# File lib/govuk/diff/pages/page_searcher.rb, line 29 def top_pages_for_format(format) result_set = JSON.parse(result_set_for_format(format)) extract_top_govuk_pages(result_set) end