Sha256: 6a55b4ffaee34333c720c8cac8731a5e7a1c1a42c8f100d3d8e37782dcc2eb18
Contents?: true
Size: 1.7 KB
Versions: 3
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true require 'faraday' require 'nokogiri' module Weneedfeed class Scraping class << self # @return [Faraday::Connection] def faraday_connection @faraday_connection ||= ::Faraday.new do |connection| connection.use ::Weneedfeed::FaradayResponseMiddleware end end end # @param [String, nil] item_description_selector # @param [String] item_link_selector # @param [String, nil] item_time_selector # @param [String] item_title_selector # @param [String] item_selector # @param [String] title # @param [String] url def initialize( item_description_selector:, item_link_selector:, item_time_selector:, item_title_selector:, item_selector:, title:, url: ) @item_description_selector = item_description_selector @item_link_selector = item_link_selector @item_time_selector = item_time_selector @item_title_selector = item_title_selector @item_selector = item_selector @title = title @url = url end # @return [Weneedfeed::Page] def call ::Weneedfeed::Page.new( node: parsed_body, item_description_selector: @item_description_selector, item_selector: @item_selector, item_link_selector: @item_link_selector, item_time_selector: @item_time_selector, item_title_selector: @item_title_selector, title: @title, url: @url ) end private # @return [Nokogiri::Node] def parsed_body ::Nokogiri::XML.parse(response.body) end # @return [Faraday::Response] def response self.class.faraday_connection.get(@url) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
weneedfeed-0.7.2 | lib/weneedfeed/scraping.rb |
weneedfeed-0.7.1 | lib/weneedfeed/scraping.rb |
weneedfeed-0.7.0 | lib/weneedfeed/scraping.rb |