jschairb-rets4r 1.1.18
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/CHANGELOG +566 -0
- data/CONTRIBUTORS +7 -0
- data/Gemfile +10 -0
- data/LICENSE +29 -0
- data/MANIFEST +62 -0
- data/NEWS +186 -0
- data/README.rdoc +43 -0
- data/RUBYS +56 -0
- data/Rakefile +50 -0
- data/TODO +35 -0
- data/examples/client_get_object.rb +49 -0
- data/examples/client_login.rb +39 -0
- data/examples/client_mapper.rb +17 -0
- data/examples/client_metadata.rb +42 -0
- data/examples/client_parser.rb +9 -0
- data/examples/client_search.rb +49 -0
- data/examples/settings.yml +114 -0
- data/lib/rets4r.rb +14 -0
- data/lib/rets4r/auth.rb +73 -0
- data/lib/rets4r/client.rb +487 -0
- data/lib/rets4r/client/data.rb +14 -0
- data/lib/rets4r/client/dataobject.rb +28 -0
- data/lib/rets4r/client/exceptions.rb +116 -0
- data/lib/rets4r/client/links.rb +32 -0
- data/lib/rets4r/client/metadata.rb +15 -0
- data/lib/rets4r/client/parsers/compact.rb +42 -0
- data/lib/rets4r/client/parsers/compact_nokogiri.rb +91 -0
- data/lib/rets4r/client/parsers/metadata.rb +92 -0
- data/lib/rets4r/client/parsers/response_parser.rb +100 -0
- data/lib/rets4r/client/requester.rb +143 -0
- data/lib/rets4r/client/transaction.rb +31 -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 +8 -0
- data/lib/tasks/annotations.rake +121 -0
- data/lib/tasks/coverage.rake +13 -0
- data/rets4r.gemspec +24 -0
- data/spec/rets4r_compact_data_parser_spec.rb +7 -0
- data/test/data/1.5/bad_compact.xml +7 -0
- data/test/data/1.5/count_only_compact.xml +3 -0
- data/test/data/1.5/error.xml +1 -0
- data/test/data/1.5/invalid_compact.xml +4 -0
- data/test/data/1.5/login.xml +16 -0
- data/test/data/1.5/metadata.xml +0 -0
- data/test/data/1.5/search_compact.xml +8 -0
- data/test/data/1.5/search_compact_big.xml +136 -0
- data/test/data/1.5/search_unescaped_compact.xml +8 -0
- data/test/data/listing_service.yml +36 -0
- data/test/test_auth.rb +68 -0
- data/test/test_client.rb +342 -0
- data/test/test_client_links.rb +39 -0
- data/test/test_compact_nokogiri.rb +64 -0
- data/test/test_helper.rb +12 -0
- data/test/test_listing_mapper.rb +112 -0
- data/test/test_loader.rb +24 -0
- data/test/test_parser.rb +96 -0
- data/test/test_quality.rb +57 -0
- metadata +211 -0
data/CONTRIBUTORS
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
RETS4R
|
2
|
+
Copyright 2006 Scott Patterson <scott.patterson@digitalaun.com>
|
3
|
+
|
4
|
+
This program is copyrighted free software by Scott Patterson. You can
|
5
|
+
redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
either the dual license version in 2003 (see the file RUBYS), or any later
|
7
|
+
version.
|
8
|
+
|
9
|
+
Some parts Copyright (c) 2009 bgetting
|
10
|
+
Some parts Copyright (c) 2009 John Wulff
|
11
|
+
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
13
|
+
a copy of this software and associated documentation files (the
|
14
|
+
"Software"), to deal in the Software without restriction, including
|
15
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
16
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
17
|
+
permit persons to whom the Software is furnished to do so, subject to
|
18
|
+
the following conditions:
|
19
|
+
|
20
|
+
The above copyright notice and this permission notice shall be
|
21
|
+
included in all copies or substantial portions of the Software.
|
22
|
+
|
23
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
24
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
25
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
26
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
27
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
28
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
29
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/MANIFEST
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
.document
|
2
|
+
CHANGELOG
|
3
|
+
CONTRIBUTORS
|
4
|
+
Gemfile
|
5
|
+
LICENSE
|
6
|
+
MANIFEST
|
7
|
+
NEWS
|
8
|
+
README.rdoc
|
9
|
+
RUBYS
|
10
|
+
Rakefile
|
11
|
+
TODO
|
12
|
+
examples/client_get_object.rb
|
13
|
+
examples/client_login.rb
|
14
|
+
examples/client_mapper.rb
|
15
|
+
examples/client_metadata.rb
|
16
|
+
examples/client_parser.rb
|
17
|
+
examples/client_search.rb
|
18
|
+
examples/settings.yml
|
19
|
+
lib/rets4r.rb
|
20
|
+
lib/rets4r/auth.rb
|
21
|
+
lib/rets4r/client.rb
|
22
|
+
lib/rets4r/client/data.rb
|
23
|
+
lib/rets4r/client/dataobject.rb
|
24
|
+
lib/rets4r/client/exceptions.rb
|
25
|
+
lib/rets4r/client/links.rb
|
26
|
+
lib/rets4r/client/metadata.rb
|
27
|
+
lib/rets4r/client/parsers/compact.rb
|
28
|
+
lib/rets4r/client/parsers/compact_nokogiri.rb
|
29
|
+
lib/rets4r/client/parsers/metadata.rb
|
30
|
+
lib/rets4r/client/parsers/response_parser.rb
|
31
|
+
lib/rets4r/client/requester.rb
|
32
|
+
lib/rets4r/client/transaction.rb
|
33
|
+
lib/rets4r/core_ext/array/extract_options.rb
|
34
|
+
lib/rets4r/core_ext/class/attribute_accessors.rb
|
35
|
+
lib/rets4r/core_ext/hash/keys.rb
|
36
|
+
lib/rets4r/core_ext/hash/slice.rb
|
37
|
+
lib/rets4r/listing_mapper.rb
|
38
|
+
lib/rets4r/listing_service.rb
|
39
|
+
lib/rets4r/loader.rb
|
40
|
+
lib/tasks/annotations.rake
|
41
|
+
lib/tasks/coverage.rake
|
42
|
+
rets4r.gemspec
|
43
|
+
spec/rets4r_compact_data_parser_spec.rb
|
44
|
+
test/data/1.5/bad_compact.xml
|
45
|
+
test/data/1.5/count_only_compact.xml
|
46
|
+
test/data/1.5/error.xml
|
47
|
+
test/data/1.5/invalid_compact.xml
|
48
|
+
test/data/1.5/login.xml
|
49
|
+
test/data/1.5/metadata.xml
|
50
|
+
test/data/1.5/search_compact.xml
|
51
|
+
test/data/1.5/search_compact_big.xml
|
52
|
+
test/data/1.5/search_unescaped_compact.xml
|
53
|
+
test/data/listing_service.yml
|
54
|
+
test/test_auth.rb
|
55
|
+
test/test_client.rb
|
56
|
+
test/test_client_links.rb
|
57
|
+
test/test_compact_nokogiri.rb
|
58
|
+
test/test_helper.rb
|
59
|
+
test/test_listing_mapper.rb
|
60
|
+
test/test_loader.rb
|
61
|
+
test/test_parser.rb
|
62
|
+
test/test_quality.rb
|
data/NEWS
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
1.1.17
|
2
|
+
New features
|
3
|
+
* RETS4R::Client::ResponseParser#parse_results: works with COMPACT-DECODED
|
4
|
+
* RETS4R::Client::CompactDataParser#parse_results: works without a
|
5
|
+
delimiter in response
|
6
|
+
* RETS4R::Client::CompactDataParser#parse_data: works without column names
|
7
|
+
in response
|
8
|
+
* RETS4R::Client::CompactNokogiriParser: yields data as it is read
|
9
|
+
* RETS4R::ListingMapper: added
|
10
|
+
|
11
|
+
Bug fixes
|
12
|
+
* RETS4R::Client#get_object: checks content-type
|
13
|
+
* RETS4R::Client::ResponseParser: no longer writes a temp file
|
14
|
+
|
15
|
+
Internal API changes
|
16
|
+
* RETS4R::Client::MetadataIndex: removed
|
17
|
+
|
18
|
+
1.1.16
|
19
|
+
Internal API changes
|
20
|
+
* RETS4R::Loader::load: parse from io, not file name
|
21
|
+
|
22
|
+
1.1.15
|
23
|
+
Bug fixes
|
24
|
+
* RETS4R::Client::CompactNokogiriParser: now parses long lines
|
25
|
+
|
26
|
+
1.1.14
|
27
|
+
New features
|
28
|
+
* RETS4R::Loader: added
|
29
|
+
* RETS4R::Client::CompactNokogiriParser: added
|
30
|
+
|
31
|
+
Other changes
|
32
|
+
* Examples use demo RETS server
|
33
|
+
* New parser example
|
34
|
+
|
35
|
+
1.1.13
|
36
|
+
Use gemcutter (Joseph Holsten)
|
37
|
+
|
38
|
+
* Rakefile: include GemcutterTasks
|
39
|
+
|
40
|
+
Fix rdoc reference (Joseph Holsten)
|
41
|
+
|
42
|
+
* README: renamed to README.rdoc
|
43
|
+
* Rakefile: likewise
|
44
|
+
* rets4r.gemspec: likewise
|
45
|
+
* CONTRIBUTORS: added Joseph Holsten
|
46
|
+
|
47
|
+
1.1.12
|
48
|
+
Merge example settings into a config file (Joseph Holsten)
|
49
|
+
Clean up testing (Joseph Holsten)
|
50
|
+
|
51
|
+
1.1.11
|
52
|
+
Merge many rets4r forks (Joseph Holsten)
|
53
|
+
|
54
|
+
1.1.10
|
55
|
+
ResponseParser#parse_common: should be _not_ equals (Jacob Basham)
|
56
|
+
|
57
|
+
1.1.9
|
58
|
+
(no change)
|
59
|
+
|
60
|
+
1.1.8
|
61
|
+
Client, ResponseParser#parse_common: Parser cleanup (Jacob Basham)
|
62
|
+
|
63
|
+
1.1.7
|
64
|
+
Client, Client#initialize, Client#create_query_string, Client#request:
|
65
|
+
Cleaned up files to be 80 skinny, added CGI escaping of data (Jacob Basham)
|
66
|
+
|
67
|
+
1.1.5
|
68
|
+
gemspec: fix date error (Jacob Basham)
|
69
|
+
|
70
|
+
1.1.3
|
71
|
+
gemspec: update (Jacob Basham)
|
72
|
+
|
73
|
+
1.1.2
|
74
|
+
ResponseParser#parse_key_value: Accept CARETS response (John Wulff)
|
75
|
+
|
76
|
+
1.1.1
|
77
|
+
ResponseParser#parse_key_value: Handle nils (John Wulff)
|
78
|
+
|
79
|
+
1.1.0
|
80
|
+
Strip key value pairs for CAPABILITY_LIST endpoints (John Wulff)
|
81
|
+
Add lib/rets4r to default load path (John Wulff)
|
82
|
+
|
83
|
+
1.0.0
|
84
|
+
See changes in 9f7ff731250abc1f73b21cb01d3a6fc3a6617e73 (John Wulff)
|
85
|
+
|
86
|
+
Parser#parse_compact_line: simplify split.
|
87
|
+
Parser#parse_data: remove legacy support.
|
88
|
+
Auth::authenticate: handle missing www-authenticate header.
|
89
|
+
Auth::parse_header: strip keys, values.
|
90
|
+
Client#initialize: method signature changed, removed options, added format.
|
91
|
+
Client#set_parser_class, Client#get_parser_class,
|
92
|
+
Client#parser_class, Client#parser_class=, Client#set_output,
|
93
|
+
Client#get_output, Client#output, Client#output=: removed, callers changed.
|
94
|
+
Lay groundwork for non-compact format requests
|
95
|
+
Client::DEFAULT_METHOD: changed to GET
|
96
|
+
Client::DEFAULT_USER_AGENT: changed to Firefox
|
97
|
+
Client#login: handle absolute uris
|
98
|
+
Client#parse: Removed. Changed callers to access parser directly.
|
99
|
+
Client#get_metadata: method signature changed, format removed. Use format instance variable.
|
100
|
+
Client#download_metadata: added
|
101
|
+
Client#get_object: handle text/xml responses
|
102
|
+
!!! Client#get_object: remove quote support from multipart boundary handling
|
103
|
+
Client#count: added
|
104
|
+
Client#basic_encode: added
|
105
|
+
!!! Client#create_query_string: Remove escaping on request query keys, values
|
106
|
+
Client#debug: removed, all calls inlined.
|
107
|
+
Client#RETSTransactionException: added
|
108
|
+
|
109
|
+
|
110
|
+
client/parsers/
|
111
|
+
|
112
|
+
|
113
|
+
0.8.5
|
114
|
+
Parser#parse_compact_line now once again ignores beginning and ending delimiters. (Scott Patterson)
|
115
|
+
Parser#parse_data now ignores header fields that are nil or blank when stripped. (Scott Patterson)
|
116
|
+
Updated test to use the rets client version of the client, not hardcoded for post and get tests. (Scott Patterson)
|
117
|
+
|
118
|
+
0.8.4
|
119
|
+
Fixed auth issue with authenticate headers with spaces after commas. (Ken Wiesner, Scott Patterson)
|
120
|
+
When an exception is raised in the authentication parsing code, complain by raising
|
121
|
+
a new exception, but also report anything of interest at the same time: request,
|
122
|
+
response, response's body. (François Beausoleil)
|
123
|
+
Fixed Client#request to actually respect the specified request method instead of always using GET requests. (Scott Patterson)
|
124
|
+
Set default request method to POST since some RETS servers seem to have trouble with GET requests. (Scott Patterson)
|
125
|
+
|
126
|
+
0.8.3
|
127
|
+
Added example #set_pre_request_block. (François Beausoleil)
|
128
|
+
Allow a pre request block to be set for RETS4R::Client.
|
129
|
+
This allows the caller to change the request in any meaningful way, such as adding a
|
130
|
+
RETS-UA-Authorization header when appropriate. (François Beausoleil)
|
131
|
+
Better response handling of HTTP errors. Response codes > 300 other than 401 now raise an
|
132
|
+
HTTPError exception that encapsulates the HTTPResponse object.
|
133
|
+
401 errors raise a LoginError exception. (Scott Patterson)
|
134
|
+
Added in RETS specification error messages to reference. (Scott Patterson)
|
135
|
+
New Rakefile. Install the rake gem and do 'rake test' to run the tests. (François Beausoleil)
|
136
|
+
|
137
|
+
0.8.2
|
138
|
+
Added missing result parameter to Client#search's yield (Scott Patterson)
|
139
|
+
Added 1.7 to supported list and default version (François Beausoleil)
|
140
|
+
No longer sends empty (nil) headers (François Beausoleil)
|
141
|
+
Added debugging to HTTP output. (François Beausoleil, Scott Patterson)
|
142
|
+
Added support for multiple set-cookie headers in the server response (François Beausoleil)
|
143
|
+
Added basic search example (Scott Patterson)
|
144
|
+
Implied default value of \t in RETS4R::Client::Transaction#delimiter (François Beausoleil)
|
145
|
+
#get_metadata now returns the block's value or the results. (François Beausoleil)
|
146
|
+
Made sure #login always calls #logout if called with a block. #login returns the block's value
|
147
|
+
instead of results. (François Beausoleil)
|
148
|
+
New assertions that require Client to have Ruby-like accessors for attributes, instead of
|
149
|
+
getters and setters. Applied 'Rename Attribute' on @parser, because #get_parser_class
|
150
|
+
was returning the class of the parser's class, instead of the parser's class itself. (François Beausoleil)
|
151
|
+
Client#set_rets_version should take care to generate the correct RETS-Version header,
|
152
|
+
and #get_rets_version should undo the changes that #set_rets_version did before
|
153
|
+
returning the value. (François Beausoleil)
|
154
|
+
Don't rescue an exception that's not being processed in Parser. (François Beausoleil)
|
155
|
+
RETS4R::Client#get_object extensions: yield or return the array of DataObject instances;
|
156
|
+
changed the multipart/parallel response boundary processing rules
|
157
|
+
(include \r\n in the boundary detection); added documentation. (François Beausoleil)
|
158
|
+
Added GetObject example (Scott Patterson)
|
159
|
+
Changed #get_object now yields each DataObject if a block is given rather
|
160
|
+
than an array of DataObjects (Scott Patterson)
|
161
|
+
|
162
|
+
0.8.1
|
163
|
+
Added Action-URL support per the specification.
|
164
|
+
Added a secondary_response accessor to the Transaction object, which is what the Action-URL result is stored in.
|
165
|
+
Fixed a bug with loggers and parsers
|
166
|
+
|
167
|
+
0.8.0
|
168
|
+
Fixed RParser support, which now means you can use REXML.
|
169
|
+
RParser now retries XML that produced a parser error after trying to clean it.
|
170
|
+
Parser support is now more open so that more parsers can be easily added in the future.
|
171
|
+
Reorganized parser file layout.
|
172
|
+
CParser will only be loaded if libxml (its dependency) is present. If it is, it is the default
|
173
|
+
parser.
|
174
|
+
Added more parser unit tests.
|
175
|
+
Renamed CParser to XMLParser and RPARSER to REXML, both with the hierarchy RETS4R::Client::Module.
|
176
|
+
Fixed a bug with the parser output not being set properly.
|
177
|
+
Fixed a bug with the parser not respecting the DELIMITER value and insisting on tab delimiters.
|
178
|
+
Added support for using a logger
|
179
|
+
Added more defaults to the search options (Count => '0', Format => 'COMPACT')
|
180
|
+
Added some Rubyisms (blocks can now be given to #new, #login, #get_metadata, #get_object, and #search)
|
181
|
+
|
182
|
+
0.7.1
|
183
|
+
Added support for reading the results count for searches.
|
184
|
+
|
185
|
+
0.7.0
|
186
|
+
Initial GEM Version
|
data/README.rdoc
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
= RETS4R
|
2
|
+
|
3
|
+
RETS4R provides a native Ruby interface to the RETS (Real Estate
|
4
|
+
Transaction Standard). It currently is built for the 1.5 specification,
|
5
|
+
but support for 1.7 and 2.0 are planned. It does not currently implement
|
6
|
+
all of the specification, but the most commonly used portions.
|
7
|
+
Specifically, there is no support for Update transactions.
|
8
|
+
|
9
|
+
While this is the only "native" Ruby RETS library currently available
|
10
|
+
(to my knowledge), there is another client written in C++ with Ruby
|
11
|
+
bindings available from the Center for Realtor� Technology
|
12
|
+
(http://www.crt.realtors.org/projects/rets/librets/).
|
13
|
+
|
14
|
+
== Links
|
15
|
+
|
16
|
+
* Source: http://github.com/josephholsten/rets4r
|
17
|
+
* Documentation: http://rdoc.info/projects/josephholsten/rets4r
|
18
|
+
|
19
|
+
== Requirements
|
20
|
+
|
21
|
+
* Ruby 1.8.4
|
22
|
+
|
23
|
+
== License
|
24
|
+
|
25
|
+
Please see the LICENSE file.
|
26
|
+
|
27
|
+
== Acknowledgments
|
28
|
+
|
29
|
+
This project was made possible in part by the Contra Costa Association of
|
30
|
+
Realtors� (http://www.ccartoday.com).
|
31
|
+
|
32
|
+
== Getting Started
|
33
|
+
|
34
|
+
Take a look at the examples directory. You'll find it more helpful than
|
35
|
+
the unit tests because the unit tests work off of local files and mock
|
36
|
+
objects, rather than making real transaction calls.
|
37
|
+
|
38
|
+
Due to the nature of this library, it is HIGHLY recommended that you
|
39
|
+
have at least a basic understanding of the RETS protocol. The official
|
40
|
+
RETS website is http://www.rets.org.
|
41
|
+
|
42
|
+
Most of the time, you will be either searching for resources or getting
|
43
|
+
objects, so begin there.
|
data/RUBYS
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the GPL
|
3
|
+
(see the file GPL), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) give non-standard binaries non-standard names, with
|
21
|
+
instructions on where to get the original software distribution.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or binary form,
|
26
|
+
provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the binaries and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard binaries non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under these terms.
|
43
|
+
|
44
|
+
For the list of those files and their copying conditions, see the
|
45
|
+
file LEGAL.
|
46
|
+
|
47
|
+
5. The scripts and library files supplied as input to or produced as
|
48
|
+
output from the software do not automatically fall under the
|
49
|
+
copyright of the software, but belong to whomever generated them,
|
50
|
+
and may be sold commercially, and may be aggregated with this
|
51
|
+
software.
|
52
|
+
|
53
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
+
PURPOSE.
|
data/Rakefile
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rake/packagetask'
|
4
|
+
require 'rake/gempackagetask'
|
5
|
+
require 'rake/contrib/rubyforgepublisher'
|
6
|
+
require 'fileutils'
|
7
|
+
include FileUtils
|
8
|
+
|
9
|
+
# impart all tasks in lib/tasks/
|
10
|
+
Dir['lib/tasks/*.rake'].each { |task| import task }
|
11
|
+
|
12
|
+
require 'rake/testtask'
|
13
|
+
Rake::TestTask.new(:test) do |test|
|
14
|
+
test.verbose = true
|
15
|
+
end
|
16
|
+
|
17
|
+
task :default => :test
|
18
|
+
|
19
|
+
require 'rake/rdoctask'
|
20
|
+
Rake::RDocTask.new do |rdoc|
|
21
|
+
if File.exist?('VERSION.yml')
|
22
|
+
config = YAML.load(File.read('VERSION.yml'))
|
23
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
24
|
+
else
|
25
|
+
version = ""
|
26
|
+
end
|
27
|
+
|
28
|
+
rdoc.rdoc_dir = 'rdoc'
|
29
|
+
rdoc.title = "rets4r #{version}"
|
30
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
31
|
+
rdoc.rdoc_files.include('README.rdoc')
|
32
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
33
|
+
end
|
34
|
+
CLEAN << 'rdoc'
|
35
|
+
|
36
|
+
file 'MANIFEST.tmp' do
|
37
|
+
sh %{find . -type f | sed 's/\\.\\///' | grep -v '.git' | sort > MANIFEST.tmp}
|
38
|
+
end
|
39
|
+
CLEAN << 'MANIFEST.tmp'
|
40
|
+
|
41
|
+
desc "Check the manifest against current files"
|
42
|
+
task :check_manifest => [:clean, 'MANIFEST', 'MANIFEST.tmp'] do
|
43
|
+
puts `diff -du MANIFEST MANIFEST.tmp`
|
44
|
+
end
|
45
|
+
|
46
|
+
CLEAN << '.rake_tasks'
|
47
|
+
|
48
|
+
lib = File.expand_path("../lib/rets4r.rb", __FILE__)
|
49
|
+
version = File.read(lib)[/^\s*VERSION\s*=\s*(['"])(\d\.\d\.\d+)\1/, 2]
|
50
|
+
CLEAN << "rets4r-#{version}.gem"
|