Class: Aranha::Parsers::SourceAddress::HttpGet

Inherits:
Base
  • Object
show all
Defined in:
lib/aranha/parsers/source_address/http_get.rb

Direct Known Subclasses

File

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#source_as_hash, #source_as_hash?, #source_as_uri, #source_as_uri?, #url

Class Method Details

.location_uri(source_uri, location) ⇒ Object



10
11
12
# File 'lib/aranha/parsers/source_address/http_get.rb', line 10

def location_uri(source_uri, location)
  ::Addressable::URI.join(source_uri, location).to_s
end

Instance Method Details

#==(other) ⇒ Object



17
18
19
# File 'lib/aranha/parsers/source_address/http_get.rb', line 17

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

#contentString



28
29
30
31
32
33
34
# File 'lib/aranha/parsers/source_address/http_get.rb', line 28

def content
  request = ::EacEnvs::Http::Request.new.url(url).retry(true).follow_redirect(true)
              .header('user-agent', self.class.name)
  request.response.body_str!
rescue ::EacEnvs::Http::Error => e
  raise ::Aranha::Parsers::SourceAddress::FetchContentError.new(e.message, request)
end

#final_urlObject



21
22
23
24
# File 'lib/aranha/parsers/source_address/http_get.rb', line 21

def final_url
  content unless @final_url
  @final_url
end

#serializeObject



36
37
38
# File 'lib/aranha/parsers/source_address/http_get.rb', line 36

def serialize
  url
end

#uriAddressable::URI

Returns:

  • (Addressable::URI)


41
42
43
# File 'lib/aranha/parsers/source_address/http_get.rb', line 41

def uri
  source_as_uri
end

#valid?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/aranha/parsers/source_address/http_get.rb', line 46

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