wrest 3.0.0 → 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 +3 -0
  3. data/LICENCE +1 -1
  4. data/README.md +29 -28
  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 -96
  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 -56
  46. data/lib/wrest/native/options.rb +15 -11
  47. data/lib/wrest/native/patch.rb +16 -12
  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 -108
  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 -12
  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 +70 -52
  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 +98 -48
  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.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,86 +1,142 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wrest
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
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: 2018-04-20 00:00:00.000000000 Z
12
+ date: 2022-09-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rspec
15
+ name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '3.3'
20
+ version: '6'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '3.3'
27
+ version: '6'
28
28
  - !ruby/object:Gem::Dependency
29
- name: sinatra
29
+ name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.0.0
34
+ version: '13.0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 1.0.0
41
+ version: '13.0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: activesupport
43
+ name: rdoc
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '5'
49
- type: :runtime
48
+ version: '6.4'
49
+ type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '5'
55
+ version: '6.4'
56
56
  - !ruby/object:Gem::Dependency
57
- name: builder
57
+ name: rspec
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">"
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '2.0'
63
- type: :runtime
62
+ version: '3.11'
63
+ type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">"
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '2.0'
69
+ version: '3.11'
70
70
  - !ruby/object:Gem::Dependency
71
- name: multi_json
71
+ name: rubocop
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.0'
77
- type: :runtime
76
+ version: 1.35.0
77
+ type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '1.0'
83
+ version: 1.35.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop-rake
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rubocop-rspec
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: sinatra
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 2.0.0
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 2.0.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: webrick
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
84
140
  - !ruby/object:Gem::Dependency
85
141
  name: concurrent-ruby
86
142
  requirement: !ruby/object:Gem::Requirement
@@ -96,22 +152,22 @@ dependencies:
96
152
  - !ruby/object:Gem::Version
97
153
  version: '1.0'
98
154
  - !ruby/object:Gem::Dependency
99
- name: json
155
+ name: nokogiri
100
156
  requirement: !ruby/object:Gem::Requirement
101
157
  requirements:
102
158
  - - "~>"
103
159
  - !ruby/object:Gem::Version
104
- version: '2.0'
160
+ version: '1.0'
105
161
  type: :runtime
106
162
  prerelease: false
107
163
  version_requirements: !ruby/object:Gem::Requirement
108
164
  requirements:
109
165
  - - "~>"
110
166
  - !ruby/object:Gem::Version
111
- version: '2.0'
112
- 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
113
169
  library with support for RFC2616 HTTP caching, multiple HTTP backends and async
114
- 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."
115
171
  email:
116
172
  - ckponnappa@gmail.com
117
173
  executables:
@@ -142,19 +198,20 @@ files:
142
198
  - lib/wrest/components/mutators.rb
143
199
  - lib/wrest/components/mutators/base.rb
144
200
  - lib/wrest/components/mutators/camel_to_snake_case.rb
145
- - lib/wrest/components/mutators/xml_mini_type_caster.rb
146
- - lib/wrest/components/mutators/xml_simple_type_caster.rb
201
+ - lib/wrest/components/mutators/xml_type_caster.rb
147
202
  - lib/wrest/components/translators.rb
148
203
  - lib/wrest/components/translators/content_types.rb
149
204
  - lib/wrest/components/translators/json.rb
150
205
  - lib/wrest/components/translators/txt.rb
151
206
  - lib/wrest/components/translators/xml.rb
207
+ - lib/wrest/components/translators/xml/conversions.rb
152
208
  - lib/wrest/core_ext/hash.rb
153
209
  - lib/wrest/core_ext/hash/conversions.rb
154
210
  - lib/wrest/core_ext/string.rb
155
211
  - lib/wrest/core_ext/string/conversions.rb
156
212
  - lib/wrest/exceptions.rb
157
213
  - lib/wrest/hash_with_case_insensitive_access.rb
214
+ - lib/wrest/hash_with_indifferent_access.rb
158
215
  - lib/wrest/http_codes.rb
159
216
  - lib/wrest/http_shared.rb
160
217
  - lib/wrest/http_shared/headers.rb
@@ -180,21 +237,14 @@ files:
180
237
  - lib/wrest/uri.rb
181
238
  - lib/wrest/uri/builders.rb
182
239
  - lib/wrest/uri_template.rb
240
+ - lib/wrest/utils.rb
183
241
  - lib/wrest/version.rb
184
- - lib/wrest/xml_mini.rb
185
- - lib/wrest/xml_mini/jdom.rb
186
- - lib/wrest/xml_mini/jdom/xpath_filter.rb
187
- - lib/wrest/xml_mini/libxml.rb
188
- - lib/wrest/xml_mini/libxml/xpath_filter.rb
189
- - lib/wrest/xml_mini/nokogiri.rb
190
- - lib/wrest/xml_mini/nokogiri/xpath_filter.rb
191
- - lib/wrest/xml_mini/rexml.rb
192
- - lib/wrest/xml_mini/rexml/xpath_filter.rb
193
242
  - lib/wrest_no_ext.rb
194
- homepage: https://github.com/gojek-engineering/wrest
243
+ homepage: https://github.com/kaiwren/wrest
195
244
  licenses: []
196
- metadata: {}
197
- post_install_message:
245
+ metadata:
246
+ rubygems_mfa_required: 'true'
247
+ post_install_message:
198
248
  rdoc_options:
199
249
  - "--charset=UTF-8"
200
250
  require_paths:
@@ -203,20 +253,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
253
  requirements:
204
254
  - - ">="
205
255
  - !ruby/object:Gem::Version
206
- version: '0'
256
+ version: 2.6.0
207
257
  required_rubygems_version: !ruby/object:Gem::Requirement
208
258
  requirements:
209
259
  - - ">="
210
260
  - !ruby/object:Gem::Version
211
- version: 1.3.0
261
+ version: 3.0.0
212
262
  requirements:
213
263
  - To use Memcached as caching back-end, install the 'dalli' gem.
214
264
  - To use Redis as caching back-end, install the 'redis' gem.
215
265
  - To use multipart post, install the 'multipart-post' gem.
216
266
  - To use eventmachine as a parallel backend, install the 'eventmachine' gem.
217
- rubyforge_project: wrest
218
- rubygems_version: 2.5.1
219
- signing_key:
267
+ rubygems_version: 3.3.7
268
+ signing_key:
220
269
  specification_version: 4
221
- summary: Wrest is a fluent, object oriented HTTP client library for 2.x.x, JRuby 9.x
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
222
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