wrest 2.1.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +6 -0
  3. data/LICENCE +1 -1
  4. data/README.md +47 -40
  5. data/bin/wrest +2 -1
  6. data/bin/wrest_shell.rb +10 -8
  7. data/lib/wrest/async_request/event_machine_backend.rb +3 -1
  8. data/lib/wrest/async_request/thread_backend.rb +5 -2
  9. data/lib/wrest/async_request/thread_pool.rb +4 -2
  10. data/lib/wrest/async_request.rb +7 -6
  11. data/lib/wrest/cache_proxy.rb +39 -28
  12. data/lib/wrest/caching/memcached.rb +21 -18
  13. data/lib/wrest/caching/redis.rb +22 -22
  14. data/lib/wrest/caching.rb +16 -14
  15. data/lib/wrest/callback.rb +19 -16
  16. data/lib/wrest/components/container/alias_accessors.rb +51 -47
  17. data/lib/wrest/components/container/typecaster.rb +146 -95
  18. data/lib/wrest/components/container.rb +171 -152
  19. data/lib/wrest/components/mutators/base.rb +43 -34
  20. data/lib/wrest/components/mutators/camel_to_snake_case.rb +7 -3
  21. data/lib/wrest/components/mutators/{xml_mini_type_caster.rb → xml_type_caster.rb} +29 -16
  22. data/lib/wrest/components/mutators.rb +21 -19
  23. data/lib/wrest/components/translators/content_types.rb +20 -16
  24. data/lib/wrest/components/translators/json.rb +19 -16
  25. data/lib/wrest/components/translators/txt.rb +19 -15
  26. data/lib/wrest/components/translators/xml/conversions.rb +56 -0
  27. data/lib/wrest/components/translators/xml.rb +60 -18
  28. data/lib/wrest/components/translators.rb +7 -6
  29. data/lib/wrest/components.rb +11 -8
  30. data/lib/wrest/core_ext/hash/conversions.rb +10 -10
  31. data/lib/wrest/core_ext/hash.rb +4 -2
  32. data/lib/wrest/core_ext/string/conversions.rb +14 -13
  33. data/lib/wrest/core_ext/string.rb +5 -3
  34. data/lib/wrest/exceptions.rb +4 -2
  35. data/lib/wrest/hash_with_case_insensitive_access.rb +8 -8
  36. data/lib/wrest/hash_with_indifferent_access.rb +442 -0
  37. data/lib/wrest/http_codes.rb +20 -19
  38. data/lib/wrest/http_shared/headers.rb +2 -0
  39. data/lib/wrest/http_shared/standard_headers.rb +2 -2
  40. data/lib/wrest/http_shared/standard_tokens.rb +8 -6
  41. data/lib/wrest/http_shared.rb +5 -3
  42. data/lib/wrest/multipart.rb +20 -11
  43. data/lib/wrest/native/connection_factory.rb +15 -11
  44. data/lib/wrest/native/delete.rb +15 -11
  45. data/lib/wrest/native/get.rb +60 -55
  46. data/lib/wrest/native/options.rb +15 -11
  47. data/lib/wrest/native/patch.rb +27 -0
  48. data/lib/wrest/native/post.rb +15 -11
  49. data/lib/wrest/native/post_multipart.rb +22 -18
  50. data/lib/wrest/native/put.rb +16 -12
  51. data/lib/wrest/native/put_multipart.rb +22 -18
  52. data/lib/wrest/native/redirection.rb +13 -12
  53. data/lib/wrest/native/request.rb +144 -106
  54. data/lib/wrest/native/response.rb +87 -78
  55. data/lib/wrest/native/session.rb +49 -40
  56. data/lib/wrest/native.rb +14 -11
  57. data/lib/wrest/test/request_patches.rb +10 -3
  58. data/lib/wrest/test.rb +3 -1
  59. data/lib/wrest/uri/builders.rb +14 -12
  60. data/lib/wrest/uri.rb +92 -50
  61. data/lib/wrest/uri_template.rb +11 -7
  62. data/lib/wrest/utils.rb +129 -0
  63. data/lib/wrest/version.rb +3 -1
  64. data/lib/wrest.rb +31 -33
  65. data/lib/wrest_no_ext.rb +2 -0
  66. metadata +91 -56
  67. data/lib/wrest/components/mutators/xml_simple_type_caster.rb +0 -37
  68. data/lib/wrest/xml_mini/jdom/xpath_filter.rb +0 -17
  69. data/lib/wrest/xml_mini/jdom.rb +0 -6
  70. data/lib/wrest/xml_mini/libxml/xpath_filter.rb +0 -12
  71. data/lib/wrest/xml_mini/libxml.rb +0 -8
  72. data/lib/wrest/xml_mini/nokogiri/xpath_filter.rb +0 -15
  73. data/lib/wrest/xml_mini/nokogiri.rb +0 -7
  74. data/lib/wrest/xml_mini/rexml/xpath_filter.rb +0 -15
  75. data/lib/wrest/xml_mini/rexml.rb +0 -8
  76. data/lib/wrest/xml_mini.rb +0 -8
data/lib/wrest/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright 2009-2011 Sidu Ponnappa
2
4
 
3
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -8,5 +10,5 @@
8
10
  # See the License for the specific language governing permissions and limitations under the License.
9
11
 
10
12
  module Wrest
11
- VERSION = "2.1.9"
13
+ VERSION = '4.0.0'
12
14
  end
data/lib/wrest.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright 2009 Sidu Ponnappa
2
4
  # Licensed under the Apache License, Version 2.0 (the "License");
3
5
  # you may not use this file except in compliance with the License.
@@ -14,18 +16,14 @@ require 'cgi'
14
16
  require 'base64'
15
17
  require 'logger'
16
18
  require 'benchmark'
17
- require 'multi_json'
18
19
  require 'concurrent'
19
- require 'active_support'
20
- require 'active_support/core_ext/string'
21
- require 'active_support/core_ext/hash'
22
- require 'active_support/core_ext/module'
23
- require 'active_support/core_ext/object'
20
+ require 'nokogiri'
21
+ require 'json'
24
22
 
25
23
  module Wrest
26
24
  Root = File.dirname(__FILE__)
27
25
 
28
- $:.unshift Root
26
+ $LOAD_PATH.unshift Root
29
27
 
30
28
  def self.logger=(logger)
31
29
  @logger = logger
@@ -36,44 +34,44 @@ module Wrest
36
34
  end
37
35
 
38
36
  def self.enable_evented_requests!
39
- require "wrest/event_machine_backend"
37
+ require 'wrest/event_machine_backend'
40
38
  end
41
39
 
42
40
  # Switch Wrest to using Net::HTTP.
43
41
  def self.use_native!
44
- silence_warnings{ Wrest.const_set('Http', Wrest::Native) }
42
+ old_verbose = $VERBOSE
43
+ $VERBOSE = nil
44
+ Wrest.const_set('Http', Wrest::Native)
45
+ ensure
46
+ $VERBOSE = old_verbose
45
47
  end
46
48
  end
47
49
 
48
- Wrest.logger = ActiveSupport::Logger.new(STDOUT)
50
+ Wrest.logger = Logger.new($stdout)
49
51
  Wrest.logger.level = Logger::DEBUG
50
52
 
51
- require "wrest/core_ext/string"
52
- require "wrest/hash_with_case_insensitive_access"
53
-
54
- # Load XmlMini Extensions
55
- require "wrest/xml_mini"
53
+ require 'wrest/utils'
54
+ require 'wrest/core_ext/string'
55
+ require 'wrest/hash_with_indifferent_access'
56
+ require 'wrest/hash_with_case_insensitive_access'
56
57
 
57
58
  # Load Wrest Core
58
- require "wrest/version"
59
- require "wrest/cache_proxy"
60
- require "wrest/http_shared"
61
- require "wrest/http_codes"
62
- require "wrest/callback"
63
- require "wrest/native"
59
+ require 'wrest/version'
60
+ require 'wrest/cache_proxy'
61
+ require 'wrest/http_shared'
62
+ require 'wrest/http_codes'
63
+ require 'wrest/callback'
64
+ require 'wrest/native'
64
65
 
65
- require "wrest/async_request/thread_pool"
66
- require "wrest/async_request/thread_backend"
67
- require "wrest/async_request"
66
+ require 'wrest/async_request/thread_pool'
67
+ require 'wrest/async_request/thread_backend'
68
+ require 'wrest/async_request'
68
69
 
69
- require "wrest/caching"
70
+ require 'wrest/caching'
70
71
 
71
72
  # Load Wrest Wrappers
72
- require "wrest/uri/builders"
73
- require "wrest/uri"
74
- require "wrest/uri_template"
75
- require "wrest/exceptions"
76
- require "wrest/components"
77
-
78
- # Load Wrest::Resource
79
- # require "wrest/resource"
73
+ require 'wrest/uri/builders'
74
+ require 'wrest/uri'
75
+ require 'wrest/uri_template'
76
+ require 'wrest/exceptions'
77
+ require 'wrest/components'
data/lib/wrest_no_ext.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Opts out of including Wrest's String Extensions
2
4
  module Wrest
3
5
  NoStringExtensions = true
metadata CHANGED
@@ -1,46 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.9
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sidu Ponnappa
8
8
  - Niranjan Paranjape
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-01-13 00:00:00.000000000 Z
12
+ date: 2022-09-13 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '6'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '13.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '13.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rdoc
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '6.4'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '6.4'
14
56
  - !ruby/object:Gem::Dependency
15
57
  name: rspec
16
58
  requirement: !ruby/object:Gem::Requirement
17
59
  requirements:
18
60
  - - "~>"
19
61
  - !ruby/object:Gem::Version
20
- version: '3.3'
62
+ version: '3.11'
21
63
  type: :development
22
64
  prerelease: false
23
65
  version_requirements: !ruby/object:Gem::Requirement
24
66
  requirements:
25
67
  - - "~>"
26
68
  - !ruby/object:Gem::Version
27
- version: '3.3'
69
+ version: '3.11'
28
70
  - !ruby/object:Gem::Dependency
29
- name: sinatra
71
+ name: rubocop
30
72
  requirement: !ruby/object:Gem::Requirement
31
73
  requirements:
32
74
  - - "~>"
33
75
  - !ruby/object:Gem::Version
34
- version: 1.0.0
76
+ version: 1.35.0
35
77
  type: :development
36
78
  prerelease: false
37
79
  version_requirements: !ruby/object:Gem::Requirement
38
80
  requirements:
39
81
  - - "~>"
40
82
  - !ruby/object:Gem::Version
41
- version: 1.0.0
83
+ version: 1.35.0
42
84
  - !ruby/object:Gem::Dependency
43
- name: metric_fu
85
+ name: rubocop-rake
44
86
  requirement: !ruby/object:Gem::Requirement
45
87
  requirements:
46
88
  - - ">="
@@ -54,47 +96,47 @@ dependencies:
54
96
  - !ruby/object:Gem::Version
55
97
  version: '0'
56
98
  - !ruby/object:Gem::Dependency
57
- name: activesupport
99
+ name: rubocop-rspec
58
100
  requirement: !ruby/object:Gem::Requirement
59
101
  requirements:
60
- - - "~>"
102
+ - - ">="
61
103
  - !ruby/object:Gem::Version
62
- version: '4'
63
- type: :runtime
104
+ version: '0'
105
+ type: :development
64
106
  prerelease: false
65
107
  version_requirements: !ruby/object:Gem::Requirement
66
108
  requirements:
67
- - - "~>"
109
+ - - ">="
68
110
  - !ruby/object:Gem::Version
69
- version: '4'
111
+ version: '0'
70
112
  - !ruby/object:Gem::Dependency
71
- name: builder
113
+ name: sinatra
72
114
  requirement: !ruby/object:Gem::Requirement
73
115
  requirements:
74
- - - ">"
116
+ - - "~>"
75
117
  - !ruby/object:Gem::Version
76
- version: '2.0'
77
- type: :runtime
118
+ version: 2.0.0
119
+ type: :development
78
120
  prerelease: false
79
121
  version_requirements: !ruby/object:Gem::Requirement
80
122
  requirements:
81
- - - ">"
123
+ - - "~>"
82
124
  - !ruby/object:Gem::Version
83
- version: '2.0'
125
+ version: 2.0.0
84
126
  - !ruby/object:Gem::Dependency
85
- name: multi_json
127
+ name: webrick
86
128
  requirement: !ruby/object:Gem::Requirement
87
129
  requirements:
88
- - - "~>"
130
+ - - ">="
89
131
  - !ruby/object:Gem::Version
90
- version: '1.0'
91
- type: :runtime
132
+ version: '0'
133
+ type: :development
92
134
  prerelease: false
93
135
  version_requirements: !ruby/object:Gem::Requirement
94
136
  requirements:
95
- - - "~>"
137
+ - - ">="
96
138
  - !ruby/object:Gem::Version
97
- version: '1.0'
139
+ version: '0'
98
140
  - !ruby/object:Gem::Dependency
99
141
  name: concurrent-ruby
100
142
  requirement: !ruby/object:Gem::Requirement
@@ -110,24 +152,24 @@ dependencies:
110
152
  - !ruby/object:Gem::Version
111
153
  version: '1.0'
112
154
  - !ruby/object:Gem::Dependency
113
- name: json
155
+ name: nokogiri
114
156
  requirement: !ruby/object:Gem::Requirement
115
157
  requirements:
116
158
  - - "~>"
117
159
  - !ruby/object:Gem::Version
118
- version: '2.0'
160
+ version: '1.0'
119
161
  type: :runtime
120
162
  prerelease: false
121
163
  version_requirements: !ruby/object:Gem::Requirement
122
164
  requirements:
123
165
  - - "~>"
124
166
  - !ruby/object:Gem::Version
125
- version: '2.0'
126
- description: Wrest is a fluent, easy-to-use, object oriented Ruby HTTP/REST client
167
+ version: '1.0'
168
+ description: "Wrest is a fluent, easy-to-use, object oriented Ruby HTTP/REST client
127
169
  library with support for RFC2616 HTTP caching, multiple HTTP backends and async
128
- calls. It runs on CRuby and JRuby and is in production use at substantial scale.
170
+ calls. It runs on CRuby and JRuby and is in production use at 10 * \U0001F984 scale."
129
171
  email:
130
- - sidu@c42.in
172
+ - ckponnappa@gmail.com
131
173
  executables:
132
174
  - wrest
133
175
  extensions: []
@@ -156,19 +198,20 @@ files:
156
198
  - lib/wrest/components/mutators.rb
157
199
  - lib/wrest/components/mutators/base.rb
158
200
  - lib/wrest/components/mutators/camel_to_snake_case.rb
159
- - lib/wrest/components/mutators/xml_mini_type_caster.rb
160
- - lib/wrest/components/mutators/xml_simple_type_caster.rb
201
+ - lib/wrest/components/mutators/xml_type_caster.rb
161
202
  - lib/wrest/components/translators.rb
162
203
  - lib/wrest/components/translators/content_types.rb
163
204
  - lib/wrest/components/translators/json.rb
164
205
  - lib/wrest/components/translators/txt.rb
165
206
  - lib/wrest/components/translators/xml.rb
207
+ - lib/wrest/components/translators/xml/conversions.rb
166
208
  - lib/wrest/core_ext/hash.rb
167
209
  - lib/wrest/core_ext/hash/conversions.rb
168
210
  - lib/wrest/core_ext/string.rb
169
211
  - lib/wrest/core_ext/string/conversions.rb
170
212
  - lib/wrest/exceptions.rb
171
213
  - lib/wrest/hash_with_case_insensitive_access.rb
214
+ - lib/wrest/hash_with_indifferent_access.rb
172
215
  - lib/wrest/http_codes.rb
173
216
  - lib/wrest/http_shared.rb
174
217
  - lib/wrest/http_shared/headers.rb
@@ -180,6 +223,7 @@ files:
180
223
  - lib/wrest/native/delete.rb
181
224
  - lib/wrest/native/get.rb
182
225
  - lib/wrest/native/options.rb
226
+ - lib/wrest/native/patch.rb
183
227
  - lib/wrest/native/post.rb
184
228
  - lib/wrest/native/post_multipart.rb
185
229
  - lib/wrest/native/put.rb
@@ -193,21 +237,14 @@ files:
193
237
  - lib/wrest/uri.rb
194
238
  - lib/wrest/uri/builders.rb
195
239
  - lib/wrest/uri_template.rb
240
+ - lib/wrest/utils.rb
196
241
  - lib/wrest/version.rb
197
- - lib/wrest/xml_mini.rb
198
- - lib/wrest/xml_mini/jdom.rb
199
- - lib/wrest/xml_mini/jdom/xpath_filter.rb
200
- - lib/wrest/xml_mini/libxml.rb
201
- - lib/wrest/xml_mini/libxml/xpath_filter.rb
202
- - lib/wrest/xml_mini/nokogiri.rb
203
- - lib/wrest/xml_mini/nokogiri/xpath_filter.rb
204
- - lib/wrest/xml_mini/rexml.rb
205
- - lib/wrest/xml_mini/rexml/xpath_filter.rb
206
242
  - lib/wrest_no_ext.rb
207
- homepage: http://c42.in/open_source
243
+ homepage: https://github.com/kaiwren/wrest
208
244
  licenses: []
209
- metadata: {}
210
- post_install_message:
245
+ metadata:
246
+ rubygems_mfa_required: 'true'
247
+ post_install_message:
211
248
  rdoc_options:
212
249
  - "--charset=UTF-8"
213
250
  require_paths:
@@ -216,22 +253,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
253
  requirements:
217
254
  - - ">="
218
255
  - !ruby/object:Gem::Version
219
- version: '0'
256
+ version: 2.6.0
220
257
  required_rubygems_version: !ruby/object:Gem::Requirement
221
258
  requirements:
222
259
  - - ">="
223
260
  - !ruby/object:Gem::Version
224
- version: 1.3.0
261
+ version: 3.0.0
225
262
  requirements:
226
263
  - To use Memcached as caching back-end, install the 'dalli' gem.
264
+ - To use Redis as caching back-end, install the 'redis' gem.
227
265
  - To use multipart post, install the 'multipart-post' gem.
228
- - To use curl as the http engine, install the 'patron' gem. This feature is not available
229
- (and should be unneccessary) on jruby.
230
266
  - To use eventmachine as a parallel backend, install the 'eventmachine' gem.
231
- rubyforge_project: wrest
232
- rubygems_version: 2.6.8
233
- signing_key:
267
+ rubygems_version: 3.3.7
268
+ signing_key:
234
269
  specification_version: 4
235
- summary: Wrest is a fluent, object oriented HTTP client library for 2.x.x, JRuby 1.7.6
236
- (and higher), JRuby 9.0.0.0.pre2.
270
+ summary: Wrest is a fluent, object oriented HTTP client library for CRuby 2.6.x, 3.x.x
271
+ and JRuby 9.3.x.x
237
272
  test_files: []
@@ -1,37 +0,0 @@
1
- # Copyright 2009 Sidu Ponnappa
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- # Unless required by applicable law or agreed to in writing, software distributed under the License
7
- # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8
- # See the License for the specific language governing permissions and limitations under the License.
9
-
10
- module Wrest
11
- module Components
12
- # This mutator undertands how do type casting
13
- # using the type data embedded in a hash
14
- # created by deserialising an xml using
15
- # xml-simple
16
- class Mutators::XmlSimpleTypeCaster < Mutators::Base
17
- def do_mutate(tuple)
18
- out_key = tuple.first
19
- in_value = tuple.last[0]
20
- out_value = in_value
21
-
22
- case in_value
23
- when Hash
24
- if in_value['nil'] == 'true'
25
- out_value = nil
26
- elsif in_value.key?('type')
27
- out_value = ActiveSupport::XmlMini::PARSING[in_value['type']].call(in_value['content'])
28
- else
29
- out_value = in_value.mutate_using(self)
30
- end
31
- end
32
-
33
- [out_key, out_value]
34
- end
35
- end
36
- end
37
- end
@@ -1,17 +0,0 @@
1
- raise "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM =~ /java/
2
-
3
-
4
-
5
-
6
- module XmlMini
7
- module JDOM
8
- module XPathFilter
9
- #Enables filtering of an xml response using a specified xpath
10
- #Returns an array of elements matching the xpath
11
- def filter(xml_body,xpath)
12
- raise NotImplementedError, "'filter' method is not implemented if JDOM backend is being used"
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,6 +0,0 @@
1
- require 'wrest/xml_mini/jdom/xpath_filter'
2
- module ActiveSupport
3
- module XmlMini_JDOM
4
- XmlMini_JDOM.extend(::XmlMini::JDOM::XPathFilter)
5
- end
6
- end
@@ -1,12 +0,0 @@
1
- module XmlMini
2
- module LibXML
3
- module XPathFilter
4
- #Enables filtering of an xml response using a specified xpath
5
- #Returns an array of elements matching the xpath
6
- def filter(xml_body,xpath)
7
- doc = ::LibXML::XML::Document.string(xml_body)
8
- doc.find(xpath).to_a
9
- end
10
- end
11
- end
12
- end
@@ -1,8 +0,0 @@
1
- require 'wrest/xml_mini/libxml/xpath_filter'
2
- module ActiveSupport
3
- module XmlMini_LibXML
4
- XmlMini_LibXML.extend(::XmlMini::LibXML::XPathFilter)
5
- end
6
- end
7
-
8
-
@@ -1,15 +0,0 @@
1
- module XmlMini
2
- module Nokogiri
3
- module XPathFilter
4
- #Enables filtering of an xml response using a specified xpath
5
- #Returns all elements that match the xpath
6
- def filter(xml_body,xpath)
7
- doc = ::Nokogiri::XML(xml_body)
8
- doc.xpath(xpath).to_a
9
- end
10
- end
11
- end
12
- end
13
-
14
-
15
-
@@ -1,7 +0,0 @@
1
- require 'wrest/xml_mini/nokogiri/xpath_filter'
2
- module ActiveSupport
3
- module XmlMini_Nokogiri
4
- XmlMini_Nokogiri.extend(::XmlMini::Nokogiri::XPathFilter)
5
- end
6
- end
7
-
@@ -1,15 +0,0 @@
1
- module XmlMini
2
- module Rexml
3
- module XPathFilter
4
- #Enables filtering of an xml response using a specified xpath
5
- #Returns an array of elements matching the xpath
6
- def filter(xml_body,xpath)
7
- doc = REXML::Document.new(xml_body)
8
- REXML::XPath.each(doc,xpath).to_a
9
- end
10
- end
11
- end
12
- end
13
-
14
-
15
-
@@ -1,8 +0,0 @@
1
- require 'wrest/xml_mini/rexml/xpath_filter'
2
- module ActiveSupport
3
- module XmlMini_REXML
4
- XmlMini_REXML.extend(::XmlMini::Rexml::XPathFilter)
5
- end
6
- end
7
-
8
-
@@ -1,8 +0,0 @@
1
- require 'wrest/xml_mini/libxml'
2
- require 'wrest/xml_mini/rexml'
3
- require 'wrest/xml_mini/nokogiri'
4
- module ActiveSupport
5
- module XmlMini
6
- delegate :filter, :to => :backend
7
- end
8
- end