Sha256: d0734ffba4d69af21be93544609e08393f8a3b01f46b22fa65cad40278089d68

Contents?: true

Size: 1.19 KB

Versions: 23

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

require 'addressable'
require 'aranha/parsers/source_address/fetch_content_error'
require 'eac_envs/http/error'
require 'eac_envs/http/request'

module Aranha
  module Parsers
    class SourceAddress
      class HttpGet
        class << self
          def location_uri(source_uri, location)
            ::Addressable::URI.join(source_uri, location).to_s
          end

          def valid_source?(source)
            source.to_s =~ %r{\Ahttps?://}
          end
        end

        attr_reader :source

        def initialize(source)
          @source = source.to_s
        end

        def ==(other)
          self.class == other.class && source == other.source
        end

        def url
          source
        end

        def final_url
          content unless @final_url
          @final_url
        end

        def content
          request = ::EacEnvs::Http::Request.new.url(url).retry(true).follow_redirect(true)
          request.response.body_str
        rescue ::EacEnvs::Http::Error => e
          raise ::Aranha::Parsers::SourceAddress::FetchContentError, e.message, request
        end

        def serialize
          url
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
aranha-parsers-0.21.0 lib/aranha/parsers/source_address/http_get.rb
aranha-parsers-0.20.0 lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.69.1 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
aranha-parsers-0.19.1 lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.69.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.68.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
aranha-parsers-0.19.0 lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.67.1 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.67.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.66.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.65.1 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
aranha-parsers-0.18.0 lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.65.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.64.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.63.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.62.1 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.62.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.61.1 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.61.0 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb
eac_tools-0.60.3 sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb