in lib/crawler/api/config.rb [394:410]
def configure_extraction_rules!
@extraction_rules = @domains.each_with_object({}) do |domain, extraction_rules|
url = domain[:url]
rulesets = domain[:extraction_rulesets].nil? ? [] : domain[:extraction_rulesets]
raise ArgumentError, "Extraction rulesets for #{url} is not an array" unless rulesets.is_a?(Array)
extra_rules = rulesets.flat_map(&:keys) - EXTRACTION_RULES_FIELDS
if extra_rules.any?
raise ArgumentError,
"Unexpected extraction ruleset(s) for #{url}: #{extra_rules.join(', ')}"
end
extraction_rules[url] = rulesets.map { |ruleset| Crawler::Data::Extraction::Ruleset.new(ruleset, url) }
end
end