Sha256: d53640e871cbb5c18def16906b9815b8a2c3744f8792f936b3d818aef43eef27

Contents?: true

Size: 624 Bytes

Versions: 5

Compression:

Stored size: 624 Bytes

Contents

require 'nokogiri'

module Spotlight::Resources
  module Web
    extend ActiveSupport::Concern

    included do
      before_create do
        harvest!
      end
    end

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

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

      @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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
blacklight-spotlight-0.4.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-0.3.1 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-0.3.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-0.2.0 app/models/concerns/spotlight/resources/web.rb
blacklight-spotlight-0.1.0 app/models/concerns/spotlight/resources/web.rb