Class: LinkOracle::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/link_oracle/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Request

Returns a new instance of Request.



5
6
7
# File 'lib/link_oracle/request.rb', line 5

def initialize(url)
  @url = url
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



3
4
5
# File 'lib/link_oracle/request.rb', line 3

def url
  @url
end

Instance Method Details

#error_classObject



33
34
35
36
37
38
39
# File 'lib/link_oracle/request.rb', line 33

def error_class
  return if response.code == 200
  {
    404 => PageNotFound,
    403 => PermissionDenied
  }[response.code] || BadThingsHappened
end

#parsed_bodyObject



41
42
43
44
45
# File 'lib/link_oracle/request.rb', line 41

def parsed_body
  ::Nokogiri::HTML.parse(response.body)
rescue
  raise ParsingError
end

#parsed_dataObject



9
10
11
12
13
# File 'lib/link_oracle/request.rb', line 9

def parsed_data
  validate_url
  validate_request
  parsed_body
end

#requestObject



29
30
31
# File 'lib/link_oracle/request.rb', line 29

def request
  ::RestClient.get url
end

#responseObject



25
26
27
# File 'lib/link_oracle/request.rb', line 25

def response
  @response ||= request
end

#validate_requestObject



15
16
17
# File 'lib/link_oracle/request.rb', line 15

def validate_request
  raise error_class if error_class
end

#validate_urlObject



19
20
21
22
23
# File 'lib/link_oracle/request.rb', line 19

def validate_url
  !!URI.parse(url)
rescue URI::InvalidURIError
  raise InvalidUrl
end