Sha256: d89e71f5eebcf4d9d5d556a65b9a330419408d9557c142187515b937ffe5028e

Contents?: true

Size: 757 Bytes

Versions: 22

Compression:

Stored size: 757 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 Faraday.default_adapter
        end.get
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
blacklight-spotlight-3.5.0.4 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.5.0.3 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.5.0.2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.5.0.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.5.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.4.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.4 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.3 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.2.2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.2.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.4.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.3.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.2.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.1.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.3 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.2 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-3.0.0 app/models/concerns/spotlight/resources/web.rb