josephholsten-rets4r 1.1.16 → 1.1.17
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +187 -3
- data/CONTRIBUTORS +2 -0
- data/NEWS +183 -0
- data/Rakefile +1 -1
- data/VERSION.yml +2 -2
- data/lib/rets4r.rb +2 -0
- data/lib/rets4r/client.rb +16 -15
- data/lib/rets4r/client/parsers/compact.rb +3 -2
- data/lib/rets4r/client/parsers/compact_nokogiri.rb +37 -11
- data/lib/rets4r/client/parsers/response_parser.rb +1 -5
- data/lib/rets4r/client/transaction.rb +3 -0
- data/lib/rets4r/core_ext/array/extract_options.rb +15 -0
- data/lib/rets4r/core_ext/class/attribute_accessors.rb +58 -0
- data/lib/rets4r/core_ext/hash/keys.rb +46 -0
- data/lib/rets4r/core_ext/hash/slice.rb +39 -0
- data/lib/rets4r/listing_mapper.rb +17 -0
- data/lib/rets4r/listing_service.rb +35 -0
- data/lib/rets4r/loader.rb +4 -8
- data/test/compact_nokogiri_test.rb +18 -2
- data/test/data/1.5/count_only_compact.xml +3 -0
- data/test/data/1.5/search_compact_big.xml +136 -0
- data/test/data/listing_service.yml +36 -0
- data/test/listing_mapper_test.rb +112 -0
- data/test/test_helper.rb +12 -0
- data/test/test_parser.rb +3 -0
- metadata +25 -8
- data/lib/rets4r/client/metadataindex.rb +0 -82
- data/test/test_metadataindex.rb +0 -36
data/CHANGELOG
CHANGED
@@ -1,6 +1,192 @@
|
|
1
|
+
Wed Mar 3 12:43:25 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
2
|
+
|
3
|
+
Require mocha before shoulda to fix 'uninitialized constant Test::Unit::TestResult::TestResultFailureSupport'
|
4
|
+
|
5
|
+
* test/test_helper.rb: require mocha earlier
|
6
|
+
|
7
|
+
Tue Feb 23 07:12:46 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
8
|
+
|
9
|
+
Add ListingMapper to convert listing keys
|
10
|
+
|
11
|
+
* lib/rets4r.rb: require listing service, mapper
|
12
|
+
* lib/rets4r/listing_mapper.rb: new file
|
13
|
+
* lib/rets4r/listing_service.rb: new file
|
14
|
+
* test/data/listing_service.yml: new file
|
15
|
+
* test/listing_mapper_test.rb: new file
|
16
|
+
* test/test_helper.rb: new file
|
17
|
+
|
18
|
+
* lib/rets4r/core_ext/array/extract_options.rb: helper from rails
|
19
|
+
* lib/rets4r/core_ext/class/attribute_accessors.rb: likewise
|
20
|
+
* lib/rets4r/core_ext/hash/keys.rb: likewise
|
21
|
+
* lib/rets4r/core_ext/hash/slice.rb: likewise
|
22
|
+
|
23
|
+
Sat Feb 20 05:39:51 2010 Brian Dunn <brianpatrickdunn@gmail.com>
|
24
|
+
|
25
|
+
Test that SAX parser yeilds durring read.
|
26
|
+
* test/compact_nokogiri_test.rb: modified
|
27
|
+
* test/data/1.5/search_compact_big.xml: new file
|
28
|
+
|
29
|
+
Thu Feb 11 06:21:54 2010 Brian Dunn <brianpatrickdunn@gmail.com>
|
30
|
+
|
31
|
+
* lib/rets4r/client/parsers/compact_nokogiri.rb
|
32
|
+
(CompactNokogiriParser#each): new. should yield each row as the stream is
|
33
|
+
read
|
34
|
+
(CompactNokogiriParser#to_a): reads the whole stream and returns
|
35
|
+
rows in an array
|
36
|
+
* lib/rets4r/loader.rb: uses the each method to yield as the stream
|
37
|
+
is read
|
38
|
+
* test/compact_nokogiri_test.rb: uses to_a instead.
|
39
|
+
|
40
|
+
Sun Feb 7 19:05:46 2010 Scott Patterson <scott.patterson@digitalaun.com>
|
41
|
+
|
42
|
+
Removed unnecessary writing of response to xml file in /tmp dir.
|
43
|
+
|
44
|
+
Sun Feb 7 19:11:38 2010 Scott Patterson <scott.patterson@digitalaun.com>
|
45
|
+
|
46
|
+
Reversed aliases and accessors to use Ruby-style accessors with the get/set methods aliased.
|
47
|
+
|
48
|
+
Sun Feb 7 19:04:17 2010 Scott Patterson <scott.patterson@digitalaun.com>
|
49
|
+
|
50
|
+
Added in #data alias to #response for compatibility.
|
51
|
+
|
52
|
+
Sun Feb 7 18:57:50 2010 Scott Patterson <scott.patterson@digitalaun.com>
|
53
|
+
|
54
|
+
Removed old experiment.
|
55
|
+
|
56
|
+
Sun Feb 7 18:56:24 2010 Scott Patterson <scott.patterson@digitalaun.com>
|
57
|
+
|
58
|
+
Added compact response with only a count.
|
59
|
+
|
60
|
+
Thu Sep 10 23:47:49 2009 Andrew Vit <andrew@avit.ca>
|
61
|
+
|
62
|
+
Support response without a delimiter or column names
|
63
|
+
|
64
|
+
Mon Sep 14 22:21:35 2009 Andrew Vit <andrew@avit.ca>
|
65
|
+
|
66
|
+
requiring needed compact parser
|
67
|
+
|
68
|
+
Wed Sep 16 04:06:16 2009 Andrew Vit <andrew@avit.ca>
|
69
|
+
|
70
|
+
Handle compact-decoded format using same parser
|
71
|
+
|
72
|
+
Wed Sep 16 04:06:35 2009 Andrew Vit <andrew@avit.ca>
|
73
|
+
|
74
|
+
Fixed crash with missing response headers
|
75
|
+
|
76
|
+
Fri Feb 5 20:37:14 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
77
|
+
|
78
|
+
Version bump to 1.1.16
|
79
|
+
|
80
|
+
Fri Feb 5 20:36:39 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
81
|
+
|
82
|
+
Merge branch 'master' of github.com:josephholsten/rets4r
|
83
|
+
|
84
|
+
Fri Feb 5 20:34:13 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
85
|
+
|
86
|
+
Make loader accept any IO
|
87
|
+
|
88
|
+
* lib/rets4r/client/parsers/compact_nokogiri.rb
|
89
|
+
(RETS4R::Loader::load): parse from io, not file name. Callers
|
90
|
+
changed
|
91
|
+
|
92
|
+
Fri Jan 22 01:39:23 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
93
|
+
|
94
|
+
Version bump to 1.1.15
|
95
|
+
|
96
|
+
Fri Jan 22 01:37:22 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
97
|
+
|
98
|
+
Merge branch 'master' of github.com:josephholsten/rets4r
|
99
|
+
|
100
|
+
Fri Jan 22 01:32:47 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
101
|
+
|
102
|
+
Fix bug for parsing long lines
|
103
|
+
|
104
|
+
* lib/rets4r/client/parsers/compact_nokogiri.rb
|
105
|
+
(RETS4R::Client::CompactNokogiriParser::CompactDocument#start_element)
|
106
|
+
(RETS4R::Client::CompactNokogiriParser::CompactDocument#end_element)
|
107
|
+
(RETS4R::Client::CompactNokogiriParser::CompactDocument#characters):
|
108
|
+
defer string handling until the element has ended
|
109
|
+
* test/compact_nokogiri_test.rb
|
110
|
+
(CompactNokogiriTest#test_should_handle_big_data): added
|
111
|
+
* test/data/1.5/bad_compact.xml: new file
|
112
|
+
|
113
|
+
Fri Jan 22 00:51:00 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
114
|
+
|
115
|
+
Regenerated gemspec for version 1.1.14
|
116
|
+
|
117
|
+
Fri Jan 22 00:50:32 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
118
|
+
|
119
|
+
Version bump to 1.1.14
|
120
|
+
|
121
|
+
Fri Jan 22 00:44:04 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
122
|
+
|
123
|
+
Add sax parser
|
124
|
+
|
125
|
+
* lib/rets4r.rb: require compact_nokogiri.rb
|
126
|
+
* lib/rets4r/loader.rb (RETS4R::Loader::load): use sax parser
|
127
|
+
* lib/rets4r/client/parsers/compact_nokogiri.rb: new file
|
128
|
+
* test/compact_nokogiri_test.rb: new file
|
129
|
+
|
130
|
+
Fri Jan 22 00:38:43 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
131
|
+
|
132
|
+
Run tests that end in _test.rb
|
133
|
+
|
134
|
+
* Rakefile: add *_test.rb to test pattern
|
135
|
+
|
136
|
+
Thu Jan 21 23:35:34 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
137
|
+
|
138
|
+
Add a batch file loader
|
139
|
+
|
140
|
+
* lib/rets4r.rb: require loader
|
141
|
+
* lib/rets4r/loader.rb: new file
|
142
|
+
* test/loader_test.rb: new file
|
143
|
+
|
144
|
+
Thu Jan 21 23:10:36 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
145
|
+
|
146
|
+
Add parser example
|
147
|
+
|
148
|
+
* examples/client_parser.rb: added
|
149
|
+
|
150
|
+
Thu Jan 21 23:02:50 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
151
|
+
|
152
|
+
Fix reference to rcov instead of relevance-rcov
|
153
|
+
|
154
|
+
* lib/tasks/coverage.rake: say rcov, not relevance-rcov
|
155
|
+
|
156
|
+
Thu Jan 21 23:02:04 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
157
|
+
|
158
|
+
Add limit to settings
|
159
|
+
|
160
|
+
* examples/client_search.rb: pull limit from settings
|
161
|
+
* examples/settings.yml: set a sane default
|
162
|
+
|
163
|
+
Wed Jan 20 11:58:32 2010 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
164
|
+
|
165
|
+
use demo rets server
|
166
|
+
|
167
|
+
Thu Nov 26 01:06:06 2009 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
168
|
+
|
169
|
+
fix links list
|
170
|
+
|
171
|
+
Thu Nov 26 01:05:26 2009 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
172
|
+
|
173
|
+
fix indentation
|
174
|
+
|
175
|
+
Thu Nov 26 01:04:25 2009 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
176
|
+
|
177
|
+
Link to related sites
|
178
|
+
|
179
|
+
* README.rdoc: updated docs
|
180
|
+
|
181
|
+
Wed Nov 25 06:37:07 2009 Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
|
182
|
+
|
183
|
+
Use gemcutter
|
184
|
+
|
185
|
+
* Rakefile: include GemcutterTasks
|
186
|
+
|
1
187
|
1.1.13
|
2
188
|
Use gemcutter (Joseph Holsten)
|
3
|
-
|
189
|
+
|
4
190
|
* Rakefile: include GemcutterTasks
|
5
191
|
|
6
192
|
Fix rdoc reference (Joseph Holsten)
|
@@ -72,10 +258,8 @@
|
|
72
258
|
Client#debug: removed, all calls inlined.
|
73
259
|
Client#RETSTransactionException: added
|
74
260
|
|
75
|
-
|
76
261
|
client/parsers/
|
77
262
|
|
78
|
-
|
79
263
|
0.8.5
|
80
264
|
Parser#parse_compact_line now once again ignores beginning and ending delimiters. (Scott Patterson)
|
81
265
|
Parser#parse_data now ignores header fields that are nil or blank when stripped. (Scott Patterson)
|
data/CONTRIBUTORS
CHANGED
data/NEWS
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
New features
|
2
|
+
* RETS4R::Client::ResponseParser#parse_results: works with COMPACT-DECODED
|
3
|
+
* RETS4R::Client::CompactDataParser#parse_results: works without a delimiter in response
|
4
|
+
* RETS4R::Client::CompactDataParser#parse_data: works without column names in response
|
5
|
+
* RETS4R::Client::CompactNokogiriParser: yields data as it is read
|
6
|
+
* RETS4R::ListingMapper: added
|
7
|
+
|
8
|
+
Bug fixes
|
9
|
+
* RETS4R::Client#get_object: checks content-type
|
10
|
+
* RETS4R::Client::ResponseParser: no longer writes a temp file
|
11
|
+
|
12
|
+
Internal API changes
|
13
|
+
* RETS4R::Client::MetadataIndex: removed
|
14
|
+
|
15
|
+
1.1.16
|
16
|
+
Internal API changes
|
17
|
+
* RETS4R::Loader::load: parse from io, not file name
|
18
|
+
|
19
|
+
1.1.15
|
20
|
+
Bug fixes
|
21
|
+
* RETS4R::Client::CompactNokogiriParser: now parses long lines
|
22
|
+
|
23
|
+
1.1.14
|
24
|
+
New features
|
25
|
+
* RETS4R::Loader: added
|
26
|
+
* RETS4R::Client::CompactNokogiriParser: added
|
27
|
+
|
28
|
+
Other changes
|
29
|
+
* Examples use demo RETS server
|
30
|
+
* New parser example
|
31
|
+
|
32
|
+
1.1.13
|
33
|
+
Use gemcutter (Joseph Holsten)
|
34
|
+
|
35
|
+
* Rakefile: include GemcutterTasks
|
36
|
+
|
37
|
+
Fix rdoc reference (Joseph Holsten)
|
38
|
+
|
39
|
+
* README: renamed to README.rdoc
|
40
|
+
* Rakefile: likewise
|
41
|
+
* rets4r.gemspec: likewise
|
42
|
+
* CONTRIBUTORS: added Joseph Holsten
|
43
|
+
|
44
|
+
1.1.12
|
45
|
+
Merge example settings into a config file (Joseph Holsten)
|
46
|
+
Clean up testing (Joseph Holsten)
|
47
|
+
|
48
|
+
1.1.11
|
49
|
+
Merge many rets4r forks (Joseph Holsten)
|
50
|
+
|
51
|
+
1.1.10
|
52
|
+
ResponseParser#parse_common: should be _not_ equals (Jacob Basham)
|
53
|
+
|
54
|
+
1.1.9
|
55
|
+
(no change)
|
56
|
+
|
57
|
+
1.1.8
|
58
|
+
Client, ResponseParser#parse_common: Parser cleanup (Jacob Basham)
|
59
|
+
|
60
|
+
1.1.7
|
61
|
+
Client, Client#initialize, Client#create_query_string, Client#request:
|
62
|
+
Cleaned up files to be 80 skinny, added CGI escaping of data (Jacob Basham)
|
63
|
+
|
64
|
+
1.1.5
|
65
|
+
gemspec: fix date error (Jacob Basham)
|
66
|
+
|
67
|
+
1.1.3
|
68
|
+
gemspec: update (Jacob Basham)
|
69
|
+
|
70
|
+
1.1.2
|
71
|
+
ResponseParser#parse_key_value: Accept CARETS response (John Wulff)
|
72
|
+
|
73
|
+
1.1.1
|
74
|
+
ResponseParser#parse_key_value: Handle nils (John Wulff)
|
75
|
+
|
76
|
+
1.1.0
|
77
|
+
Strip key value pairs for CAPABILITY_LIST endpoints (John Wulff)
|
78
|
+
Add lib/rets4r to default load path (John Wulff)
|
79
|
+
|
80
|
+
1.0.0
|
81
|
+
See changes in 9f7ff731250abc1f73b21cb01d3a6fc3a6617e73 (John Wulff)
|
82
|
+
|
83
|
+
Parser#parse_compact_line: simplify split.
|
84
|
+
Parser#parse_data: remove legacy support.
|
85
|
+
Auth::authenticate: handle missing www-authenticate header.
|
86
|
+
Auth::parse_header: strip keys, values.
|
87
|
+
Client#initialize: method signature changed, removed options, added format.
|
88
|
+
Client#set_parser_class, Client#get_parser_class,
|
89
|
+
Client#parser_class, Client#parser_class=, Client#set_output,
|
90
|
+
Client#get_output, Client#output, Client#output=: removed, callers changed.
|
91
|
+
Lay groundwork for non-compact format requests
|
92
|
+
Client::DEFAULT_METHOD: changed to GET
|
93
|
+
Client::DEFAULT_USER_AGENT: changed to Firefox
|
94
|
+
Client#login: handle absolute uris
|
95
|
+
Client#parse: Removed. Changed callers to access parser directly.
|
96
|
+
Client#get_metadata: method signature changed, format removed. Use format instance variable.
|
97
|
+
Client#download_metadata: added
|
98
|
+
Client#get_object: handle text/xml responses
|
99
|
+
!!! Client#get_object: remove quote support from multipart boundary handling
|
100
|
+
Client#count: added
|
101
|
+
Client#basic_encode: added
|
102
|
+
!!! Client#create_query_string: Remove escaping on request query keys, values
|
103
|
+
Client#debug: removed, all calls inlined.
|
104
|
+
Client#RETSTransactionException: added
|
105
|
+
|
106
|
+
|
107
|
+
client/parsers/
|
108
|
+
|
109
|
+
|
110
|
+
0.8.5
|
111
|
+
Parser#parse_compact_line now once again ignores beginning and ending delimiters. (Scott Patterson)
|
112
|
+
Parser#parse_data now ignores header fields that are nil or blank when stripped. (Scott Patterson)
|
113
|
+
Updated test to use the rets client version of the client, not hardcoded for post and get tests. (Scott Patterson)
|
114
|
+
|
115
|
+
0.8.4
|
116
|
+
Fixed auth issue with authenticate headers with spaces after commas. (Ken Wiesner, Scott Patterson)
|
117
|
+
When an exception is raised in the authentication parsing code, complain by raising
|
118
|
+
a new exception, but also report anything of interest at the same time: request,
|
119
|
+
response, response's body. (François Beausoleil)
|
120
|
+
Fixed Client#request to actually respect the specified request method instead of always using GET requests. (Scott Patterson)
|
121
|
+
Set default request method to POST since some RETS servers seem to have trouble with GET requests. (Scott Patterson)
|
122
|
+
|
123
|
+
0.8.3
|
124
|
+
Added example #set_pre_request_block. (François Beausoleil)
|
125
|
+
Allow a pre request block to be set for RETS4R::Client.
|
126
|
+
This allows the caller to change the request in any meaningful way, such as adding a
|
127
|
+
RETS-UA-Authorization header when appropriate. (François Beausoleil)
|
128
|
+
Better response handling of HTTP errors. Response codes > 300 other than 401 now raise an
|
129
|
+
HTTPError exception that encapsulates the HTTPResponse object.
|
130
|
+
401 errors raise a LoginError exception. (Scott Patterson)
|
131
|
+
Added in RETS specification error messages to reference. (Scott Patterson)
|
132
|
+
New Rakefile. Install the rake gem and do 'rake test' to run the tests. (François Beausoleil)
|
133
|
+
|
134
|
+
0.8.2
|
135
|
+
Added missing result parameter to Client#search's yield (Scott Patterson)
|
136
|
+
Added 1.7 to supported list and default version (François Beausoleil)
|
137
|
+
No longer sends empty (nil) headers (François Beausoleil)
|
138
|
+
Added debugging to HTTP output. (François Beausoleil, Scott Patterson)
|
139
|
+
Added support for multiple set-cookie headers in the server response (François Beausoleil)
|
140
|
+
Added basic search example (Scott Patterson)
|
141
|
+
Implied default value of \t in RETS4R::Client::Transaction#delimiter (François Beausoleil)
|
142
|
+
#get_metadata now returns the block's value or the results. (François Beausoleil)
|
143
|
+
Made sure #login always calls #logout if called with a block. #login returns the block's value
|
144
|
+
instead of results. (François Beausoleil)
|
145
|
+
New assertions that require Client to have Ruby-like accessors for attributes, instead of
|
146
|
+
getters and setters. Applied 'Rename Attribute' on @parser, because #get_parser_class
|
147
|
+
was returning the class of the parser's class, instead of the parser's class itself. (François Beausoleil)
|
148
|
+
Client#set_rets_version should take care to generate the correct RETS-Version header,
|
149
|
+
and #get_rets_version should undo the changes that #set_rets_version did before
|
150
|
+
returning the value. (François Beausoleil)
|
151
|
+
Don't rescue an exception that's not being processed in Parser. (François Beausoleil)
|
152
|
+
RETS4R::Client#get_object extensions: yield or return the array of DataObject instances;
|
153
|
+
changed the multipart/parallel response boundary processing rules
|
154
|
+
(include \r\n in the boundary detection); added documentation. (François Beausoleil)
|
155
|
+
Added GetObject example (Scott Patterson)
|
156
|
+
Changed #get_object now yields each DataObject if a block is given rather
|
157
|
+
than an array of DataObjects (Scott Patterson)
|
158
|
+
|
159
|
+
0.8.1
|
160
|
+
Added Action-URL support per the specification.
|
161
|
+
Added a secondary_response accessor to the Transaction object, which is what the Action-URL result is stored in.
|
162
|
+
Fixed a bug with loggers and parsers
|
163
|
+
|
164
|
+
0.8.0
|
165
|
+
Fixed RParser support, which now means you can use REXML.
|
166
|
+
RParser now retries XML that produced a parser error after trying to clean it.
|
167
|
+
Parser support is now more open so that more parsers can be easily added in the future.
|
168
|
+
Reorganized parser file layout.
|
169
|
+
CParser will only be loaded if libxml (its dependency) is present. If it is, it is the default
|
170
|
+
parser.
|
171
|
+
Added more parser unit tests.
|
172
|
+
Renamed CParser to XMLParser and RPARSER to REXML, both with the hierarchy RETS4R::Client::Module.
|
173
|
+
Fixed a bug with the parser output not being set properly.
|
174
|
+
Fixed a bug with the parser not respecting the DELIMITER value and insisting on tab delimiters.
|
175
|
+
Added support for using a logger
|
176
|
+
Added more defaults to the search options (Count => '0', Format => 'COMPACT')
|
177
|
+
Added some Rubyisms (blocks can now be given to #new, #login, #get_metadata, #get_object, and #search)
|
178
|
+
|
179
|
+
0.7.1
|
180
|
+
Added support for reading the results count for searches.
|
181
|
+
|
182
|
+
0.7.0
|
183
|
+
Initial GEM Version
|
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ Dir['lib/tasks/*.rake'].each { |task| import task }
|
|
13
13
|
begin
|
14
14
|
require 'jeweler'
|
15
15
|
Jeweler::Tasks.new do |gem|
|
16
|
-
gem.name = "
|
16
|
+
gem.name = "rets4r"
|
17
17
|
gem.summary = 'A native Ruby implementation of RETS (Real Estate Transaction Standard).'
|
18
18
|
gem.authors = ['Scott Patterson', 'John Wulff', 'bgetting', "Jacob Basham"]
|
19
19
|
gem.email = ['scott.patterson@digitalaun.com', 'john@johnwulff.com', 'brian@terra-firma-design.com','jacob@paperpigeons.net']
|
data/VERSION.yml
CHANGED
data/lib/rets4r.rb
CHANGED
data/lib/rets4r/client.rb
CHANGED
@@ -18,6 +18,7 @@ require 'cgi'
|
|
18
18
|
require 'auth'
|
19
19
|
require 'client/dataobject'
|
20
20
|
require 'client/parsers/response_parser'
|
21
|
+
require 'client/parsers/compact'
|
21
22
|
require 'thread'
|
22
23
|
require 'logger'
|
23
24
|
|
@@ -164,15 +165,15 @@ module RETS4R
|
|
164
165
|
@headers[name]
|
165
166
|
end
|
166
167
|
|
167
|
-
def
|
168
|
+
def user_agent=(name)
|
168
169
|
set_header('User-Agent', name)
|
169
170
|
end
|
170
171
|
|
171
|
-
def
|
172
|
+
def user_agent
|
172
173
|
get_header('User-Agent')
|
173
174
|
end
|
174
175
|
|
175
|
-
def
|
176
|
+
def rets_version=(version)
|
176
177
|
if (SUPPORTED_RETS_VERSIONS.include? version)
|
177
178
|
set_header('RETS-Version', "RETS/#{version}")
|
178
179
|
else
|
@@ -180,27 +181,27 @@ module RETS4R
|
|
180
181
|
end
|
181
182
|
end
|
182
183
|
|
183
|
-
def
|
184
|
+
def rets_version
|
184
185
|
(get_header('RETS-Version') || "").gsub("RETS/", "")
|
185
186
|
end
|
186
187
|
|
187
|
-
def
|
188
|
+
def request_method=(method)
|
188
189
|
@request_method = method
|
189
190
|
end
|
190
191
|
|
191
|
-
def
|
192
|
+
def request_method
|
192
193
|
# Basic Authentication
|
193
194
|
#
|
194
195
|
@request_method
|
195
196
|
end
|
196
197
|
|
197
|
-
# Provide
|
198
|
-
alias_method :
|
199
|
-
alias_method :
|
200
|
-
alias_method :
|
201
|
-
alias_method :
|
202
|
-
alias_method :
|
203
|
-
alias_method :
|
198
|
+
# Provide backwards-compatible get/set methods.
|
199
|
+
alias_method :set_user_agent, :user_agent=
|
200
|
+
alias_method :get_user_agent, :user_agent
|
201
|
+
alias_method :set_request_method, :request_method=
|
202
|
+
alias_method :get_request_method, :request_method
|
203
|
+
alias_method :set_rets_version, :rets_version=
|
204
|
+
alias_method :get_rets_version, :rets_version
|
204
205
|
|
205
206
|
#### RETS Transaction Methods ####
|
206
207
|
#
|
@@ -327,12 +328,12 @@ module RETS4R
|
|
327
328
|
response = request(@urls['GetObject'], data, header)
|
328
329
|
results = block_given? ? 0 : []
|
329
330
|
|
330
|
-
if response['content-type'].include?('text/xml')
|
331
|
+
if response['content-type'] && response['content-type'].include?('text/xml')
|
331
332
|
# This probably means that there was an error.
|
332
333
|
# Response parser will likely raise an exception.
|
333
334
|
rr = @response_parser.parse_object_response(response.body)
|
334
335
|
return rr
|
335
|
-
elsif response['content-type'].include?('multipart/parallel')
|
336
|
+
elsif response['content-type'] && response['content-type'].include?('multipart/parallel')
|
336
337
|
content_type = process_content_type(response['content-type'])
|
337
338
|
|
338
339
|
# TODO: log this
|