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

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

Direct Known Subclasses

File

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ HttpGet

Returns a new instance of HttpGet.



24
25
26
# File 'lib/aranha/parsers/source_address/http_get.rb', line 24

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

Instance Attribute Details

#sourceObject (readonly)

Returns the value of attribute source.



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

def source
  @source
end

Class Method Details

.location_uri(source_uri, location) ⇒ Object



13
14
15
# File 'lib/aranha/parsers/source_address/http_get.rb', line 13

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

.valid_source?(source) ⇒ Boolean

Returns:

  • (Boolean)


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

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

Instance Method Details

#==(other) ⇒ Object



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

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

#contentObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/aranha/parsers/source_address/http_get.rb', line 41

def content
  conn = ::Faraday.new do |f|
    f.request :retry # retry transient failures
    f.response :follow_redirects # follow redirects
  end
  c = conn.get(url)
  return c.body if c.status == 200

  raise ::Aranha::Parsers::SourceAddress::FetchContentError,
        "Get #{url} returned #{c.status.to_i}"
end

#final_urlObject



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

def final_url
  content unless @final_url
  @final_url
end

#serializeObject



53
54
55
# File 'lib/aranha/parsers/source_address/http_get.rb', line 53

def serialize
  url
end

#urlObject



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

def url
  source
end