Class: Saxxy::Agent
- Inherits:
-
Object
- Object
- Saxxy::Agent
- Defined in:
- lib/saxxy/utils/agent.rb
Overview
The Agent is a thin wrapper over Net::HTTP::Proxy in order to be used for crawling purposes. Supports GET and POST via its get and post methods.
Instance Attribute Summary collapse
-
#agent ⇒ Object
readonly
Returns the value of attribute agent.
-
#proxy ⇒ Object
readonly
Returns the value of attribute proxy.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#uri ⇒ Object
Returns the value of attribute uri.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
-
#get(url = nil) ⇒ Object
Issues a get request either by using the url provided as an argument or the one the agent currently holds.
-
#initialize(url, opts = {}) ⇒ Agent
constructor
Initializes an agent with optional proxy options.
-
#post(url = nil, opts = {}) ⇒ Object
Issues a post request either by using the url provided as an argument or the one the agent currently holds.
Constructor Details
#initialize(url, opts = {}) ⇒ Agent
Initializes an agent with optional proxy options. Url: A string that it is the url that the agent is going to use for issuing
requests. It can be reset to another via the self.uri = method.
Options:
-
proxy:
-
address: The address of the proxy.
-
port: The port the proxy will use.
-
username: The username if the proxy needs auth.
-
password: The password if the proxy needs auth.
-
21 22 23 24 25 |
# File 'lib/saxxy/utils/agent.rb', line 21 def initialize(url, opts = {}) @proxy = opts[:proxy] || {} @agent = proxy.empty? ? Net::HTTP : Net::HTTP::Proxy(proxy[:address], proxy[:port], proxy[:username], proxy[:password]) self.uri = url end |
Instance Attribute Details
#agent ⇒ Object (readonly)
Returns the value of attribute agent.
10 11 12 |
# File 'lib/saxxy/utils/agent.rb', line 10 def agent @agent end |
#proxy ⇒ Object (readonly)
Returns the value of attribute proxy.
10 11 12 |
# File 'lib/saxxy/utils/agent.rb', line 10 def proxy @proxy end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
10 11 12 |
# File 'lib/saxxy/utils/agent.rb', line 10 def response @response end |
#uri ⇒ Object
Returns the value of attribute uri.
10 11 12 |
# File 'lib/saxxy/utils/agent.rb', line 10 def uri @uri end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
10 11 12 |
# File 'lib/saxxy/utils/agent.rb', line 10 def url @url end |
Instance Method Details
#get(url = nil) ⇒ Object
Issues a get request either by using the url provided as an argument or the one the agent currently holds. Note: if the provided url is different from the agent’s it updates the
agent's url also. See set_uri_for.
38 39 40 |
# File 'lib/saxxy/utils/agent.rb', line 38 def get(url = nil) issue_request(url, :get_response) end |
#post(url = nil, opts = {}) ⇒ Object
Issues a post request either by using the url provided as an argument or the one the agent currently holds. Uses the post_form method of the Net::HTTP::Proxy and forwards any passed options to the underlying agent. Note: if the provided url is different from the agent’s it updates the
agent's url also. See set_uri_for.
47 48 49 |
# File 'lib/saxxy/utils/agent.rb', line 47 def post(url = nil, opts = {}) issue_request(url, :post_form, opts) end |