Method: Html2rss::AutoSource::Scraper::Schema#each

Defined in:
lib/html2rss/auto_source/scraper/schema.rb

#each {|Hash| ... } ⇒ Array<Hash>

Returns the scraped article_hashes.

Yields:

  • (Hash)

    Each scraped article_hash

Returns:

  • (Array<Hash>)

    the scraped article_hashes

[View source]

89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/html2rss/auto_source/scraper/schema.rb', line 89

def each(&)
  return enum_for(:each) unless block_given?

  schema_objects.filter_map do |schema_object|
    next unless (klass = self.class.scraper_for_schema_object(schema_object))
    next unless (results = klass.new(schema_object, url:).call)

    if results.is_a?(Array)
      results.each { |result| yield(result) } # rubocop:disable Style/ExplicitBlockArgument
    else
      yield(results)
    end
  end
end