Sha256: 89ab8b7b9c2337d7a6c8b5986dfe40d2f5519444d899cb2867c9c8c7d98d4a5a

Contents?: true

Size: 743 Bytes

Versions: 30

Compression:

Stored size: 743 Bytes

Contents

# frozen_string_literal: true

require 'nokogiri'

module Spotlight
  module Resources
    ##
    # Generic web resource harvester base module
    module Web
      extend ActiveSupport::Concern

      included do
        before_create do
          harvest!
        end
      end

      def harvest!
        response = Spotlight::Resources::Web.fetch url
        data[:headers] = response.headers
        data[:body] = response.body
      end

      def body
        harvest! if data[:body].blank?

        @body ||= Nokogiri::HTML.parse data[:body]
      end

      def self.fetch(url)
        Faraday.new(url) do |b|
          b.use FaradayMiddleware::FollowRedirects
          b.adapter :net_http
        end.get
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
blacklight-spotlight-3.0.0.rc4 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.rc3 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.rc2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.rc1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.10 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.9 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.8 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.7 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.6 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.5 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.4 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.3 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0.alpha.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.13.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.12.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.12.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.11.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.10.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-2.9.0 app/models/concerns/spotlight/resources/web.rb