Skip to content

Commit

Permalink
Update httpclient version to 2.6
Browse files Browse the repository at this point in the history
  • Loading branch information
summera committed May 24, 2015
1 parent c1aaa67 commit ebe2abf
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ PATH
remote: .
specs:
rets (0.7.0.20150116133928)
httpclient (~> 2.4)
httpclient (~> 2.6.0)
nokogiri (~> 1.5)

GEM
Expand Down
13 changes: 7 additions & 6 deletions lib/rets/http_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,20 @@ def rets_extra_headers

if options[:ua_password]
up = Digest::MD5.hexdigest "#{user_agent}:#{options[:ua_password]}"
session_id = http_cookie('RETS-Session-ID') || ''
session_id = http_cookie || ''
digest = Digest::MD5.hexdigest "#{up}::#{session_id}:#{rets_version}"
headers.merge!("RETS-UA-Authorization" => "Digest #{digest}")
end

headers
end

def http_cookie(name)
http.cookies.each do |c|
return c.value if c.name.downcase == name.downcase && c.match?(URI.parse(login_url))
end
nil
def http_cookie
# Use CookieManager#cookie_value to obtain cookie value.
# This is independent of cookie implementation, i.e. CookieManager can use
# Webagent::Cookie or Http::Cookie underneath
cookie_values = http.cookie_manager.cookie_value URI.parse(login_url)
cookie_values.split("; ", 1).first.split("=").last if cookie_values
end
end
end
6 changes: 3 additions & 3 deletions rets.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ Gem::Specification.new do |s|
s.specification_version = 4

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<httpclient>, ["~> 2.4"])
s.add_runtime_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_runtime_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
s.add_development_dependency(%q<mocha>, ["~> 0.11"])
s.add_development_dependency(%q<vcr>, ["~> 2.2"])
s.add_development_dependency(%q<webmock>, ["~> 1.8"])
s.add_development_dependency(%q<hoe>, ["~> 3.6"])
else
s.add_dependency(%q<httpclient>, ["~> 2.4"])
s.add_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_dependency(%q<rdoc>, ["~> 4.0"])
s.add_dependency(%q<mocha>, ["~> 0.11"])
Expand All @@ -42,7 +42,7 @@ Gem::Specification.new do |s|
s.add_dependency(%q<hoe>, ["~> 3.6"])
end
else
s.add_dependency(%q<httpclient>, ["~> 2.4"])
s.add_dependency(%q<httpclient>, ["~> 2.6.0"])
s.add_dependency(%q<nokogiri>, ["~> 1.5"])
s.add_dependency(%q<rdoc>, ["~> 4.0"])
s.add_dependency(%q<mocha>, ["~> 0.11"])
Expand Down
16 changes: 16 additions & 0 deletions test/test_http_client.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
require_relative "helper"

class TestHttpClient < MiniTest::Test
def setup
cm = WebAgent::CookieManager.new
str = "RETS-Session-ID=879392834723043209; path=/; domain=rets.rets.com; expires=Wednesday, 31-Dec-2037 12:00:00 GMT"
cm.parse(str, URI.parse("http://www.rets.rets.com"))
http = HTTPClient.new
http.cookie_manager = cm
@http_client = Rets::HttpClient.new(http, {}, nil, "http://rets.rets.com/somestate/login.aspx")
end

def test_http_cookie_with_webagent_cookie
assert_equal "879392834723043209", @http_client.http_cookie
end
end

0 comments on commit ebe2abf

Please sign in to comment.