Class: ROX::WebConversation
- Inherits:
-
Object
- Object
- ROX::WebConversation
- Defined in:
- lib/rox/webconversation.rb
Instance Attribute Summary collapse
-
#cookies ⇒ Object
Returns the value of attribute cookies.
Instance Method Summary collapse
- #add_cookies(req) ⇒ Object
- #delete(url, params = {}) ⇒ Object
- #get(url, params = {}) ⇒ Object
-
#initialize(uri) ⇒ WebConversation
constructor
A new instance of WebConversation.
- #post(url, params = {}) ⇒ Object
- #put(url, params = {}) ⇒ Object
- #query(params) ⇒ Object
- #remember_cookies(res) ⇒ Object
- #request(req) ⇒ Object
Constructor Details
#initialize(uri) ⇒ WebConversation
9 10 11 12 |
# File 'lib/rox/webconversation.rb', line 9 def initialize(uri) @cookies = Hash.new @uri = URI.parse(uri) end |
Instance Attribute Details
#cookies ⇒ Object
Returns the value of attribute cookies.
7 8 9 |
# File 'lib/rox/webconversation.rb', line 7 def @cookies end |
Instance Method Details
#add_cookies(req) ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/rox/webconversation.rb', line 61 def (req) return if @cookies.empty? = "" @cookies.each do |key, value| << "#{key}=#{value}," end req["Cookie"] = [0....size-1] end |
#delete(url, params = {}) ⇒ Object
41 42 43 44 45 |
# File 'lib/rox/webconversation.rb', line 41 def delete(url, params = {}) req = Net::HTTP::Delete.new(url+"?"+query(params)) res = request(req) return res.body end |
#get(url, params = {}) ⇒ Object
14 15 16 17 18 |
# File 'lib/rox/webconversation.rb', line 14 def get(url, params = {}) req = Net::HTTP::Get.new(url+"?"+query(params)) res = request(req) return res.body end |
#post(url, params = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rox/webconversation.rb', line 20 def post(url, params = {}) stringified_params = Hash.new params.each do |key, value| next if key == :body or key == 'body' stringified_params[key.to_s] = value.to_s end req = Net::HTTP::Post.new(url) req.set_form_data(stringified_params) req.body = params[:body] || params['body'] res = request(req) return res.body end |
#put(url, params = {}) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/rox/webconversation.rb', line 34 def put(url, params = {}) req = Net::HTTP::Put.new(url+"?"+query(params)) req.body = params[:body] || params['body'] res = request(req) return res.body end |
#query(params) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/rox/webconversation.rb', line 71 def query(params) query = "" params.each do |key, value| next if key == :body || key == 'body' query += '&' query += URI.escape(key.to_s)+"="+URI.escape(value.to_s) end query = query[1..query.size] return query end |
#remember_cookies(res) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rox/webconversation.rb', line 47 def (res) setCookie = res['Set-Cookie'] return unless setCookie = setCookie.split(/\s*[,;]\s*/) .each do || if ( =~ /^(JS|open-xchange)/) key, value = .split(/\=/) @cookies[key] = value end end end |
#request(req) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/rox/webconversation.rb', line 83 def request(req) (req) http_session = Net::HTTP.new(@uri.host, @uri.port) http_session.use_ssl = @uri.scheme == "https" res = http_session.start do |http| http.request(req) end (res) return res end |