Class: Pincers::Http::Client
- Inherits:
-
Object
- Object
- Pincers::Http::Client
- Extended by:
- Forwardable
- Defined in:
- lib/pincers/http/client.rb
Instance Attribute Summary collapse
-
#document ⇒ Object
readonly
Returns the value of attribute document.
-
#frozen ⇒ Object
readonly
Returns the value of attribute frozen.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
Class Method Summary collapse
Instance Method Summary collapse
- #absolute_uri_for(_url) ⇒ Object
- #cookies ⇒ Object
- #delete(_url, &_block) ⇒ Object
- #fork(_keep_session = false) ⇒ Object
- #freeze ⇒ Object
- #get(_url, _query = nil, &_block) ⇒ Object
-
#initialize(_session, _document = {}) ⇒ Client
constructor
A new instance of Client.
- #join(_other_client) ⇒ Object
- #post(_url, _data = nil, &_block) ⇒ Object
- #put(_url, _data = nil, &_block) ⇒ Object
- #set_cookie(_cookie) ⇒ Object
- #unfreeze ⇒ Object
Constructor Details
#initialize(_session, _document = {}) ⇒ Client
Returns a new instance of Client.
33 34 35 36 37 |
# File 'lib/pincers/http/client.rb', line 33 def initialize(_session, _document={}) @session = _session @document = _document @frozen = false end |
Instance Attribute Details
#document ⇒ Object (readonly)
Returns the value of attribute document.
30 31 32 |
# File 'lib/pincers/http/client.rb', line 30 def document @document end |
#frozen ⇒ Object (readonly)
Returns the value of attribute frozen.
30 31 32 |
# File 'lib/pincers/http/client.rb', line 30 def frozen @frozen end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
30 31 32 |
# File 'lib/pincers/http/client.rb', line 30 def session @session end |
Class Method Details
.build_from_options(_options = {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/pincers/http/client.rb', line 13 def self.( = {}) session = Session.new session.proxy = [:proxy] if .key? :proxy session.proxy_auth = [:proxy_auth] if .key? :proxy_auth session.headers.merge! [:headers] if .key? :headers session.redirect_limit = [:redirect_limit] if .key? :redirect_limit if .key? :ssl_cert session.ssl_cert = [:ssl_cert] session.ssl_key = [:ssl_key] end client = self.new session, [:document] client.freeze if [:freeze] client end |
Instance Method Details
#absolute_uri_for(_url) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/pincers/http/client.rb', line 95 def absolute_uri_for(_url) uri = _url.is_a?(URI) ? _url : Utils.parse_uri(_url) if uri.relative? raise ArgumentError, 'Absolute url was required' if @document.nil? uri = URI.join(@document.uri, uri) end uri end |
#cookies ⇒ Object
47 48 49 |
# File 'lib/pincers/http/client.rb', line 47 def @session.. end |
#delete(_url, &_block) ⇒ Object
80 81 82 83 84 |
# File 'lib/pincers/http/client.rb', line 80 def delete(_url, &_block) request = build_request :delete, _url _block.call request unless _block.nil? perform_in_session request end |
#fork(_keep_session = false) ⇒ Object
86 87 88 89 |
# File 'lib/pincers/http/client.rb', line 86 def fork(_keep_session = false) fork_session = _keep_session ? @session : @session.clone self.class.new fork_session, @document end |
#freeze ⇒ Object
39 40 41 |
# File 'lib/pincers/http/client.rb', line 39 def freeze @frozen = true end |
#get(_url, _query = nil, &_block) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/pincers/http/client.rb', line 59 def get(_url, _query = nil, &_block) request = build_request :get, _url request.set_query _query unless _query.nil? _block.call request unless _block.nil? perform_in_session request end |
#join(_other_client) ⇒ Object
91 92 93 |
# File 'lib/pincers/http/client.rb', line 91 def join(_other_client) @session.sync _other_client.session end |
#post(_url, _data = nil, &_block) ⇒ Object
66 67 68 69 70 71 |
# File 'lib/pincers/http/client.rb', line 66 def post(_url, _data = nil, &_block) request = build_request :post, _url load_data_in_request request, _data unless _data.nil? _block.call request unless _block.nil? perform_in_session request end |
#put(_url, _data = nil, &_block) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/pincers/http/client.rb', line 73 def put(_url, _data = nil, &_block) request = build_request :put, _url load_data_in_request request, _data unless _data.nil? _block.call request unless _block.nil? perform_in_session request end |
#set_cookie(_cookie) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/pincers/http/client.rb', line 51 def () if .is_a? Hash = Cookie.new([:name], [:value], [:domain], [:path]) end @session..set end |
#unfreeze ⇒ Object
43 44 45 |
# File 'lib/pincers/http/client.rb', line 43 def unfreeze @frozen = false end |