Module: HypermediaAPI
- Defined in:
- lib/api/api.rb
Defined Under Namespace
Classes: Document, Form, Link, Model
Constant Summary
collapse
- BadURI =
Class.new(Exception)
- MissingForm =
Class.new(Exception)
- MissingLink =
Class.new(Exception)
Class Method Summary
collapse
Class Method Details
.connection(uri) ⇒ Object
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/api/api.rb', line 8
def HypermediaAPI.connection (uri)
connection = Net::HTTP.new(uri.host, uri.port)
if uri.scheme == 'https'
connection.use_ssl = true
connection.ssl_version = 'SSLv3'
end
connection
end
|
.get(uri_string, options = {}) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/api/api.rb', line 19
def HypermediaAPI.get (uri_string, options = {})
uri = URI(uri_string)
get = Net::HTTP::Get.new(uri.request_uri)
HypermediaAPI.send_request(uri, get, options)
end
|
.post(uri_string, options = {}) ⇒ Object
26
27
28
29
30
31
32
|
# File 'lib/api/api.rb', line 26
def HypermediaAPI.post (uri_string, options = {})
uri = URI(uri_string)
post = Net::HTTP::Post.new(uri.request_uri)
post.set_form_data(options[:inputs] || {})
HypermediaAPI.send_request(uri, post, options)
end
|
.send_request(uri, request, options) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/api/api.rb', line 34
def HypermediaAPI.send_request (uri, request, options)
if auth = options[:basic_auth]
request.basic_auth(auth[:username], auth[:password])
end
response = HypermediaAPI.connection(uri).request(request)
status = response.code.to_i
= response.to_hash
nokogiri_html_document = Nokogiri::HTML::Document.parse(response.body, uri.to_s)
Document.new(nokogiri_html_document, status, , auth)
end
|