- Make
client.rets_data
available immediately when callingclient.search
rather than having to wait until it finishes (Paul Trippett) :rets_version
can be passed toclient.login
without the User-Agent fields being set, for RETS servers that require the version to be passed initially
- Added support for RETS servers that use digest authentication without the quality of protection flag (MRIS)
- Added SSL support (Paul Trippett)
- Fixed metadata parsing breaking if a field wasn't filled out (Paul Trippett)
- Fixed multipart parsing for
client.get_object
if a part is blank
- Fixed a stack overflow due to how Interealty handles User-Agent authentication errors
- Dropped support for TimeoutSeconds, instead if an HTTP 401 is received after a successful request then a reauthentication is forced. Provides better compatibility with how some RETS implementations handle sessions
- Client methods no longer return the HTTP request
- Requests will correctly be called after a HTTP digest becomes stale
client.login
will now raiseResponseError
errors if the RETS tag cannot be found in the responseclient.login
added the ability to pass:rets_version
to force the RETS Version used in HTTP requests. Provides a small speedup as it can skip one HTTP request depending on the RETS implementationclient.get_object
can return both Content-Description or Description rather than just Description. Also will return Preferred
- Added support for TimeoutSeconds, after the timeout passes the gem seamlessly reauthenticates
- Improved the edge case handling for authentication requests to greatly increase compatability with logging into any RETS based system
- Object multipart parsing no longer fails if the boundary is wrapped in quotes
- Response parsing won't fail if the RETS server uses odd casing for the "ReplyText" and "ReplyCode" args in RETS
client.logout
will now raiseCapabilityNotFound
errors if it's unsupportedclient.get_object
now requires a block which is yielded to rather than returning an array of the contentclient.get_object
headers are now returned in lowercase form ("content-id" not "Content-ID" and so on)RETS::Client.login
now uses:useragent => {:name => "Foo", :password => "Bar"}
to pass User Agent dataRETS::Client.login
no longer implies the User-Agent username or password by the primary username and password
- Added support for Count, Offset, Select and RestrictedIndicators in
client.search
- Added support for Location in
client.get_object
- RETS reply code, text and other data such as count or delimiter can be gotten through
client.rets_data
after the call is finished
- Redid how authentication is handled, no longer implies HTTP Basic auth when using RETS-UA-Authorization
- RETS-Version is now used for RETS-UA-Authorization when available with "RETS/1.7" as a fallback
- Exceptions are now raised consistently and have been simplifed to
APIError
,HTTPError
,Unauthorized
andCapabilityNotFound
HTTPError
andAPIError
now include the reply text and code inreply_code
andreply_text