Sha256: 14fbf941d6e39aaf99c2b8efb2e9c256f40b471e049df03d499f1703c3d5c8b5
Contents?: true
Size: 828 Bytes
Versions: 4
Compression:
Stored size: 828 Bytes
Contents
# frozen_string_literal: true require 'scrapework' # Mapping for repo tab (paginated class RepositoryTabPage < Scrapework::Object has_many :repositories map :repositories do |html| html.css('a[itemprop="name codeRepository"]').map do |a| { url: URI.join(url, a['href']), name: a.text.strip } end end paginate do |html| pages = html.css('.paginate-container .btn') pages.map do |page| { url: page['href'] } if page && page['href'].present? end end end # Mapping for repository class Repository < Scrapework::Object attribute :name end page = RepositoryTabPage.new(url: 'https://github.com/jphager2?tab=repositories') i = 0 until page.nil? page.load page.repositories.each do |repo| i += 1 puts "#{i})\t#{repo.name} (#{repo.url})" end page = page.next_page end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
scrapework-0.1.3 | examples/github.rb |
scrapework-0.1.2 | examples/github.rb |
scrapework-0.1.1 | examples/github.rb |
scrapework-0.1.0 | examples/github.rb |