wrest 1.0.0.beta7 → 1.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.
data/CHANGELOG CHANGED
@@ -17,6 +17,12 @@ Features under a numbered section are complete and available in the Wrest gem.
17
17
  * Ensure Components::Container is ActiveModel compliant
18
18
 
19
19
  == Current
20
+ * GH#56 Detailed Net::HTTP debug output option added to Wrest::Native:Request.
21
+ * GH#60 Wrest debug log arrow direction changed to be consistent with Net::HTPP debug log
22
+ * GH#59 follow_redirects_limit is off by one
23
+ * GH#24 Add support for xpath based filtering of xml response bodies to the response chain
24
+ * GH#46 Response.deserialise for Json responses
25
+ * GH#52 Wrest console (bin/wrest) fails on 1.9.2
20
26
 
21
27
  == 1.0.0.beta7
22
28
  * GH#46 Response.deserialise for Json responses
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = Wrest 1.0.0.beta7
1
+ = Wrest 1.0.0
2
2
 
3
3
  (c) Copyright 2009-2010 {Sidu Ponnappa}[http://blog.sidu.in]. All Rights Reserved.
4
4
 
@@ -34,6 +34,17 @@ For Facebook, Twitter, Delicious, GitHub and other API examples, see http://gith
34
34
  'http://google.com'.to_uri(:follow_redirects => false).get
35
35
 
36
36
  'http://google.com'.to_uri(:follow_redirects_limit => 1).get
37
+
38
+ :follow_redirects_limit defaults to 5 if not specified.
39
+
40
+ * Deserialise with XPath filtering
41
+
42
+ ActiveSupport::XmlMini.backend = 'REXML'
43
+
44
+ 'http://twitter.com/statuses/public_timeline.xml'.to_uri.get.deserialise(
45
+ :xpath => '//user/name/text()'
46
+ )
47
+
37
48
  * More complex request with parameters and a custom deserialiser
38
49
 
39
50
  'http://search.yahooapis.com/NewsSearchService/V1/newsSearch'.to_uri.get(
@@ -135,7 +146,7 @@ Features that are planned, in progress or already implemented are documented in
135
146
 
136
147
  The source is available at git://github.com/kaiwren/wrest.git
137
148
 
138
- To install the Wrest gem, do <tt>(sudo) gem install wrest --pre</tt>.
149
+ To install the Wrest gem, do <tt>(sudo) gem install wrest</tt>.
139
150
 
140
151
  Wrest is currently available as a gem for for Ruby and JRuby.
141
152
 
@@ -144,7 +155,21 @@ Wrest is currently available as a gem for for Ruby and JRuby.
144
155
  You can launch the interactive Wrest shell by running bin/wrest if you have the source or invoking <tt>wrest</tt> from your prompt if you've installed the gem.
145
156
  $ wrest
146
157
  >> y 'http://twitter.com/statuses/public_timeline.json'.to_uri(:timeout => 5).get.deserialise
147
-
158
+
159
+ === Testing
160
+
161
+ Start the Sinatra test server for functional test.
162
+ rake -f spec/sample_app/Rakefile
163
+
164
+ Run the tests in a different terminal:
165
+
166
+ # Run the normal test suite.
167
+ rake
168
+
169
+ # Runs the functional test suite.
170
+ rake rspec:functional
171
+
172
+
148
173
  == Contributors
149
174
 
150
175
  * Sidu Ponnappa : {kaiwren}[http://github.com/kaiwren]
@@ -154,3 +179,5 @@ You can launch the interactive Wrest shell by running bin/wrest if you have the
154
179
  * Preethi Ramdev : {preethiramdev}[http://github.com/preethiramdev]
155
180
  * Nikhil Vallishayee : {nikhilvallishayee}[http://github.com/nikhilvallishayee]
156
181
  * Jacques Crocker : {railsjedi}[http://github.com/railsjedi]
182
+ * Jasim A Basheer: {jasim}[http://github.com/jasim]
183
+
data/bin/wrest_shell.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  puts "Ruby #{RUBY_VERSION}, #{RUBY_RELEASE_DATE}, #{RUBY_PLATFORM}"
2
2
 
3
- entry_point = "#{File.dirname(__FILE__)}/../lib/wrest.rb"
4
- version = "#{File.dirname(__FILE__)}/../lib/wrest/version"
3
+ entry_point = File.expand_path "#{File.dirname(__FILE__)}/../lib/wrest.rb"
4
+ version = File.expand_path "#{File.dirname(__FILE__)}/../lib/wrest/version.rb"
5
5
 
6
6
  irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
7
7
 
@@ -6,14 +6,17 @@
6
6
  # Unless required by applicable law or agreed to in writing, software distributed under the License
7
7
  # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8
8
  # See the License for the specific language governing permissions and limitations under the License.
9
-
10
9
  module Wrest
11
10
  module Components::Translators
12
11
  module Xml
13
12
  extend self
14
13
 
15
- def deserialise(response)
16
- Hash.from_xml(response.body)
14
+ def deserialise(response,options={})
15
+ if(!options[:xpath].nil?)
16
+ ActiveSupport::XmlMini.filter(response.body,options[:xpath])
17
+ else
18
+ Hash.from_xml(response.body)
19
+ end
17
20
  end
18
21
 
19
22
  def serialise(hash, options = {})
@@ -59,7 +59,7 @@ module Wrest
59
59
  @http_request.timeout = @timeout
60
60
  end
61
61
 
62
- # Makes a request and returns a Wrest::Http::Response.
62
+ # Makes a request and returns a Wrest::Native::Response.
63
63
  # Data about the request is and logged to Wrest.logger
64
64
  # The log entry contains the following information:
65
65
  #
@@ -84,9 +84,9 @@ module Wrest
84
84
 
85
85
  prefix = "#{http_request.action.to_s.upcase} #{http_request.hash} #{connection.hash}"
86
86
 
87
- Wrest.logger.debug "--> (#{prefix}) #{http_request.url}"
87
+ Wrest.logger.debug "<- (#{prefix}) #{http_request.url}"
88
88
  time = Benchmark.realtime { response = Wrest::Curl::Response.new(connection.handle_request(http_request))}
89
- Wrest.logger.debug "<-- (#{prefix}) %s (%d bytes %.2fs)" % [response.message, response.body ? response.body.length : 0, time]
89
+ Wrest.logger.debug "-> (#{prefix}) %s (%d bytes %.2fs)" % [response.message, response.body ? response.body.length : 0, time]
90
90
 
91
91
  response
92
92
  rescue Patron::TimeoutError => e
@@ -30,12 +30,12 @@ module Wrest #:nodoc:
30
30
  initialize_http_header
31
31
  end
32
32
 
33
- def deserialise
34
- deserialise_using(Wrest::Components::Translators.lookup(content_type))
33
+ def deserialise(options = {})
34
+ deserialise_using(Wrest::Components::Translators.lookup(content_type),options)
35
35
  end
36
36
 
37
- def deserialise_using(translator)
38
- translator.deserialise(@http_response)
37
+ def deserialise_using(translator,options={})
38
+ translator.deserialise(@http_response,options)
39
39
  end
40
40
 
41
41
  def code
@@ -68,4 +68,4 @@ module Wrest #:nodoc:
68
68
  end
69
69
  end
70
70
  end
71
- end
71
+ end
@@ -9,7 +9,7 @@
9
9
 
10
10
  module Wrest::Curl
11
11
  # This class is a wrapper for a keep-alive HTTP connection. It simply passes the
12
- # same connection instance as an option to all Wrest::Http::Request instances created using it.
12
+ # same connection instance as an option to all Wrest::Native::Request instances created using it.
13
13
  #
14
14
  # If at any point the server closes an existing connection during a Session by returning a
15
15
  # Connection: Close header the current connection is destroyed and a fresh one created for the next
@@ -11,7 +11,7 @@ module Wrest
11
11
  end
12
12
 
13
13
  # Raised when a request auto redirects more times than are allowed
14
- # by its follow_redirects_limit. See Wrest::Http::Redirection.
14
+ # by its follow_redirects_limit. See Wrest::Native::Redirection.
15
15
  class AutoRedirectLimitExceeded < StandardError
16
16
  end
17
17
 
@@ -9,15 +9,16 @@
9
9
 
10
10
  module Wrest::Native
11
11
  module ConnectionFactory
12
- def create_connection(timeout = 60)
13
- timeout ||= 60
12
+ def create_connection(options = {:timeout => 60, :verify_mode => 'VERIFY_PEER'})
13
+ options[:timeout] ||= 60
14
14
  connection = Net::HTTP.new(self.host, self.port)
15
- connection.read_timeout = timeout
15
+ connection.read_timeout = options[:timeout]
16
16
  if self.https?
17
17
  connection.use_ssl = true
18
- connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
18
+ connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
19
+ connection.verify_mode = OpenSSL::SSL::VERIFY_NONE if options[:verify_mode] == 'VERIFY_NONE'
19
20
  end
20
21
  connection
21
22
  end
22
23
  end
23
- end
24
+ end
@@ -28,7 +28,7 @@ module Wrest #:nodoc:
28
28
  target = self['location']
29
29
  redirect_request_options = redirect_request_options.clone
30
30
 
31
- raise Wrest::Exceptions::AutoRedirectLimitExceeded if (redirect_request_options[:follow_redirects_count] += 1) >= redirect_request_options[:follow_redirects_limit]
31
+ raise Wrest::Exceptions::AutoRedirectLimitExceeded if (redirect_request_options[:follow_redirects_count] += 1) > redirect_request_options[:follow_redirects_limit]
32
32
 
33
33
  Wrest.logger.debug "--| Redirecting to #{target}"
34
34
  Wrest::Uri.new(target, redirect_request_options).get
@@ -32,6 +32,10 @@ module Wrest::Native
32
32
  # :connection => The HTTP Connection object to use. This is how a keep-alive connection can be
33
33
  # used for multiple requests.
34
34
  # :cache_store => The object which should be used as cache store for cacheable responses
35
+ # :detailed_http_logging => nil/$stdout/$stderr or File/Logger/IO object. Defaults to nil (recommended).
36
+ #
37
+ # *WARNING* : detailed_http_logging causes serious security hole. Never use it in production code.
38
+ #
35
39
  def initialize(wrest_uri, http_request_klass, parameters = {}, body = nil, headers = {}, options = {})
36
40
  @uri = wrest_uri
37
41
  @headers = headers.stringify_keys
@@ -47,6 +51,7 @@ module Wrest::Native
47
51
  @connection = @options[:connection]
48
52
  @http_request = self.build_request(http_request_klass, @uri, @parameters, @headers)
49
53
  @cache_store = options[:cache_store]
54
+ @detailed_http_logging = options[:detailed_http_logging]
50
55
  end
51
56
 
52
57
  # Makes a request and returns a Wrest::Native::Response.
@@ -69,14 +74,16 @@ module Wrest::Native
69
74
  def invoke
70
75
  response = nil
71
76
 
72
- @connection ||= @uri.create_connection(timeout)
77
+ @connection ||= @uri.create_connection({:timeout => timeout})
78
+ @connection.set_debug_output @detailed_http_logging
79
+
73
80
  http_request.basic_auth username, password unless username.nil? || password.nil?
74
81
 
75
82
  prefix = "#{http_request.method} #{http_request.hash} #{@connection.hash}"
76
83
 
77
- Wrest.logger.debug "--> (#{prefix}) #{@uri.protocol}://#{@uri.host}:#{@uri.port}#{@http_request.path}"
84
+ Wrest.logger.debug "<- (#{prefix}) #{@uri.protocol}://#{@uri.host}:#{@uri.port}#{@http_request.path}"
78
85
  time = Benchmark.realtime { response = Wrest::Native::Response.new( do_request ) }
79
- Wrest.logger.debug "<-- (#{prefix}) %d %s (%d bytes %.2fs)" % [response.code, response.message, response.body ? response.body.length : 0, time]
86
+ Wrest.logger.debug "-> (#{prefix}) %d %s (%d bytes %.2fs)" % [response.code, response.message, response.body ? response.body.length : 0, time]
80
87
 
81
88
  @follow_redirects ? response.follow(@options) : response
82
89
  rescue Timeout::Error => e
@@ -6,7 +6,7 @@
6
6
  # Unless required by applicable law or agreed to in writing, software distributed under the License
7
7
  # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8
8
  # See the License for the specific language governing permissions and limitations under the License.
9
-
9
+ require "rexml/document"
10
10
  module Wrest #:nodoc:
11
11
  module Native #:nodoc:
12
12
  # Decorates a response providing support for deserialisation.
@@ -40,12 +40,13 @@ module Wrest #:nodoc:
40
40
  @http_response = http_response
41
41
  end
42
42
 
43
- def deserialise
44
- deserialise_using(Wrest::Components::Translators.lookup(@http_response.content_type))
43
+
44
+ def deserialise(options = {})
45
+ deserialise_using(Wrest::Components::Translators.lookup(@http_response.content_type),options)
45
46
  end
46
47
 
47
- def deserialise_using(translator)
48
- translator.deserialise(@http_response)
48
+ def deserialise_using(translator,options = {})
49
+ translator.deserialise(@http_response,options)
49
50
  end
50
51
 
51
52
  def headers
@@ -54,7 +55,7 @@ module Wrest #:nodoc:
54
55
 
55
56
  # A null object implementation - invoking this method on
56
57
  # a response simply returns the same response unless
57
- # the response is a Redirection (code 3xx), in which case a
58
+ # the response is Redirection (code 3xx), in which case a
58
59
  # get is invoked on the url stored in the response headers
59
60
  # under the key 'location' and the new Response is returned.
60
61
  def follow(redirect_request_options = {})
@@ -9,7 +9,7 @@
9
9
 
10
10
  module Wrest::Native
11
11
  # This class is a wrapper for a keep-alive HTTP connection. It simply passes the
12
- # same connection instance as an option to all Wrest::Http::Request instances created using it.
12
+ # same connection instance as an option to all Wrest::Native::Request instances created using it.
13
13
  #
14
14
  # If at any point the server closes an existing connection during a Session by returning a
15
15
  # Connection: Close header the current connection is destroyed and a fresh one created for the next
data/lib/wrest/uri.rb CHANGED
@@ -24,7 +24,7 @@ module Wrest #:nodoc:
24
24
  class Uri
25
25
  attr_reader :uri, :username, :password, :uri_string, :uri_path, :query
26
26
 
27
- # See Wrest::Http::Request for the available options and their default values.
27
+ # See Wrest::Native::Request for the available options and their default values.
28
28
  def initialize(uri_string, options = {})
29
29
  @options = options
30
30
  @uri_string = uri_string.to_s
@@ -88,7 +88,7 @@ module Wrest #:nodoc:
88
88
  end
89
89
 
90
90
  # Make a GET request to this URI. This is a convenience API
91
- # that creates a Wrest::Http::Get, executes it and returns a Wrest::Http::Response.
91
+ # that creates a Wrest::Native::Get, executes it and returns a Wrest::Native::Response.
92
92
  #
93
93
  # Remember to escape all parameter strings if necessary, using URI.escape
94
94
  def get(parameters = {}, headers = {})
@@ -96,7 +96,7 @@ module Wrest #:nodoc:
96
96
  end
97
97
 
98
98
  # Make a PUT request to this URI. This is a convenience API
99
- # that creates a Wrest::Http::Put, executes it and returns a Wrest::Http::Response.
99
+ # that creates a Wrest::Native::Put, executes it and returns a Wrest::Native::Response.
100
100
  #
101
101
  # Remember to escape all parameter strings if necessary, using URI.escape
102
102
  def put(body = '', headers = {}, parameters = {})
@@ -104,7 +104,7 @@ module Wrest #:nodoc:
104
104
  end
105
105
 
106
106
  # Makes a POST request to this URI. This is a convenience API
107
- # that creates a Wrest::Http::Post, executes it and returns a Wrest::Http::Response.
107
+ # that creates a Wrest::Native::Post, executes it and returns a Wrest::Native::Response.
108
108
  # Note that sending an empty body will blow up if you're using libcurl.
109
109
  #
110
110
  # Remember to escape all parameter strings if necessary, using URI.escape
@@ -126,7 +126,7 @@ module Wrest #:nodoc:
126
126
  end
127
127
 
128
128
  # Makes a DELETE request to this URI. This is a convenience API
129
- # that creates a Wrest::Http::Delete, executes it and returns a Wrest::Http::Response.
129
+ # that creates a Wrest::Native::Delete, executes it and returns a Wrest::Native::Response.
130
130
  #
131
131
  # Remember to escape all parameter strings if necessary, using URI.escape
132
132
  def delete(parameters = {}, headers = {})
@@ -134,7 +134,7 @@ module Wrest #:nodoc:
134
134
  end
135
135
 
136
136
  # Makes an OPTIONS request to this URI. This is a convenience API
137
- # that creates a Wrest::Http::Options, executes it and returns the Wrest::Http::Response.
137
+ # that creates a Wrest::Native::Options, executes it and returns the Wrest::Native::Response.
138
138
  def options
139
139
  Http::Options.new(self, @options).invoke
140
140
  end
data/lib/wrest/version.rb CHANGED
@@ -13,7 +13,7 @@ module Wrest
13
13
  MAJOR = 1
14
14
  MINOR = 0
15
15
  TINY = 0
16
- BUILD = 'beta7'
16
+ BUILD = nil
17
17
 
18
18
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
19
19
 
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,6 @@
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
@@ -0,0 +1,12 @@
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
@@ -0,0 +1,8 @@
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,14 +1,15 @@
1
- #require 'nokogiri'
2
- module Xml_Mini
1
+ module XmlMini
3
2
  module Nokogiri
4
3
  module XPathFilter
5
4
  #Enables filtering of an xml response using a specified xpath
6
5
  #Returns all elements that match the xpath
7
6
  def filter(xml_body,xpath)
8
7
  doc = ::Nokogiri::XML(xml_body)
9
- doc.xpath(xpath).to_a
8
+ doc.xpath(xpath).to_a
10
9
  end
11
10
  end
12
11
  end
13
12
  end
14
13
 
14
+
15
+
@@ -1,8 +1,7 @@
1
1
  require 'wrest/xml_mini/nokogiri/xpath_filter'
2
2
  module ActiveSupport
3
3
  module XmlMini_Nokogiri
4
- XmlMini_Nokogiri.extend(Xml_Mini::Nokogiri::XPathFilter)
4
+ XmlMini_Nokogiri.extend(::XmlMini::Nokogiri::XPathFilter)
5
5
  end
6
6
  end
7
7
 
8
-
@@ -0,0 +1,15 @@
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
+
@@ -0,0 +1,8 @@
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
+
@@ -0,0 +1,10 @@
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
9
+
10
+
data/lib/wrest.rb CHANGED
@@ -83,6 +83,9 @@ ActiveSupport::JSON.backend = "JSONGem"
83
83
 
84
84
  require "#{Wrest::Root}/wrest/core_ext/string"
85
85
 
86
+ # Load XmlMini Extensions
87
+ require "#{Wrest::Root}/wrest/xml_mini"
88
+
86
89
  # Load Wrest Core
87
90
  require "#{Wrest::Root}/wrest/version"
88
91
  require "#{Wrest::Root}/wrest/http_shared"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wrest
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
4
+ hash: 23
5
+ prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 0
8
9
  - 0
9
- - beta7
10
- version: 1.0.0.beta7
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sidu Ponnappa
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-09-30 00:00:00 +05:30
19
+ date: 2010-12-24 00:00:00 +05:30
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -27,6 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
+ hash: 62196431
30
31
  segments:
31
32
  - 2
32
33
  - 0
@@ -44,6 +45,7 @@ dependencies:
44
45
  requirements:
45
46
  - - ~>
46
47
  - !ruby/object:Gem::Version
48
+ hash: 7
47
49
  segments:
48
50
  - 3
49
51
  - 0
@@ -59,6 +61,7 @@ dependencies:
59
61
  requirements:
60
62
  - - ~>
61
63
  - !ruby/object:Gem::Version
64
+ hash: 15
62
65
  segments:
63
66
  - 2
64
67
  - 1
@@ -74,6 +77,7 @@ dependencies:
74
77
  requirements:
75
78
  - - ~>
76
79
  - !ruby/object:Gem::Version
80
+ hash: 11
77
81
  segments:
78
82
  - 1
79
83
  - 4
@@ -95,62 +99,69 @@ files:
95
99
  - bin/wrest
96
100
  - lib/wrest_no_ext.rb
97
101
  - lib/wrest.rb
98
- - lib/wrest/uri_template.rb
99
- - lib/wrest/version.rb
100
- - lib/wrest/xml_mini/nokogiri.rb
101
- - lib/wrest/xml_mini/nokogiri/xpath_filter.rb
102
- - lib/wrest/resource/state.rb
103
- - lib/wrest/resource/base.rb
104
- - lib/wrest/resource/collection.rb
105
- - lib/wrest/test.rb
106
- - lib/wrest/core_ext/hash/conversions.rb
107
- - lib/wrest/core_ext/hash.rb
108
- - lib/wrest/core_ext/string/conversions.rb
109
- - lib/wrest/core_ext/string.rb
110
- - lib/wrest/curl.rb
111
- - lib/wrest/native.rb
112
102
  - lib/wrest/http_shared.rb
113
- - lib/wrest/native/session.rb
114
- - lib/wrest/native/redirection.rb
115
- - lib/wrest/native/response.rb
116
- - lib/wrest/native/options.rb
117
- - lib/wrest/native/get.rb
118
- - lib/wrest/native/connection_factory.rb
103
+ - lib/wrest/components/translators.rb
104
+ - lib/wrest/components/container.rb
105
+ - lib/wrest/components/mutators/xml_mini_type_caster.rb
106
+ - lib/wrest/components/mutators/base.rb
107
+ - lib/wrest/components/mutators/camel_to_snake_case.rb
108
+ - lib/wrest/components/mutators/xml_simple_type_caster.rb
109
+ - lib/wrest/components/translators/xml.rb
110
+ - lib/wrest/components/translators/content_types.rb
111
+ - lib/wrest/components/translators/json.rb
112
+ - lib/wrest/components/mutators.rb
113
+ - lib/wrest/components/container/typecaster.rb
114
+ - lib/wrest/components/container/alias_accessors.rb
119
115
  - lib/wrest/native/request.rb
120
- - lib/wrest/native/post.rb
116
+ - lib/wrest/native/connection_factory.rb
121
117
  - lib/wrest/native/put_multipart.rb
122
- - lib/wrest/native/put.rb
123
118
  - lib/wrest/native/delete.rb
119
+ - lib/wrest/native/response.rb
120
+ - lib/wrest/native/get.rb
124
121
  - lib/wrest/native/post_multipart.rb
125
- - lib/wrest/uri.rb
126
- - lib/wrest/components.rb
127
- - lib/wrest/curl/session.rb
122
+ - lib/wrest/native/put.rb
123
+ - lib/wrest/native/options.rb
124
+ - lib/wrest/native/session.rb
125
+ - lib/wrest/native/post.rb
126
+ - lib/wrest/native/redirection.rb
127
+ - lib/wrest/core_ext/string/conversions.rb
128
+ - lib/wrest/core_ext/hash/conversions.rb
129
+ - lib/wrest/core_ext/hash.rb
130
+ - lib/wrest/core_ext/string.rb
131
+ - lib/wrest/native.rb
132
+ - lib/wrest/curl/request.rb
133
+ - lib/wrest/curl/delete.rb
128
134
  - lib/wrest/curl/response.rb
129
- - lib/wrest/curl/options.rb
130
135
  - lib/wrest/curl/get.rb
131
- - lib/wrest/curl/request.rb
132
- - lib/wrest/curl/post.rb
133
136
  - lib/wrest/curl/put.rb
134
- - lib/wrest/curl/delete.rb
137
+ - lib/wrest/curl/options.rb
138
+ - lib/wrest/curl/session.rb
139
+ - lib/wrest/curl/post.rb
140
+ - lib/wrest/resource/base.rb
141
+ - lib/wrest/resource/collection.rb
142
+ - lib/wrest/resource/state.rb
143
+ - lib/wrest/multipart.rb
144
+ - lib/wrest/xml_mini.rb
135
145
  - lib/wrest/exceptions.rb
136
- - lib/wrest/components/translators/json.rb
137
- - lib/wrest/components/translators/xml.rb
138
- - lib/wrest/components/translators/content_types.rb
139
- - lib/wrest/components/mutators.rb
140
- - lib/wrest/components/translators.rb
141
- - lib/wrest/components/container.rb
142
- - lib/wrest/components/container/alias_accessors.rb
143
- - lib/wrest/components/container/typecaster.rb
144
- - lib/wrest/components/mutators/camel_to_snake_case.rb
145
- - lib/wrest/components/mutators/xml_mini_type_caster.rb
146
- - lib/wrest/components/mutators/base.rb
147
- - lib/wrest/components/mutators/xml_simple_type_caster.rb
148
- - lib/wrest/http_shared/standard_tokens.rb
149
- - lib/wrest/http_shared/standard_headers.rb
150
- - lib/wrest/http_shared/headers.rb
146
+ - lib/wrest/curl.rb
151
147
  - lib/wrest/resource.rb
148
+ - lib/wrest/test.rb
149
+ - lib/wrest/uri_template.rb
150
+ - lib/wrest/xml_mini/rexml/xpath_filter.rb
151
+ - lib/wrest/xml_mini/libxml.rb
152
+ - lib/wrest/xml_mini/jdom.rb
153
+ - lib/wrest/xml_mini/nokogiri.rb
154
+ - lib/wrest/xml_mini/libxml/xpath_filter.rb
155
+ - lib/wrest/xml_mini/jdom/xpath_filter.rb
156
+ - lib/wrest/xml_mini/rexml.rb
157
+ - lib/wrest/xml_mini/nokogiri/xpath_filter.rb
158
+ - lib/wrest/uri.rb
152
159
  - lib/wrest/test/request_patches.rb
153
- - lib/wrest/multipart.rb
160
+ - lib/wrest/http_shared/standard_headers.rb
161
+ - lib/wrest/http_shared/standard_tokens.rb
162
+ - lib/wrest/http_shared/headers.rb
163
+ - lib/wrest/components.rb
164
+ - lib/wrest/version.rb
154
165
  - README.rdoc
155
166
  - CHANGELOG
156
167
  - LICENCE
@@ -168,6 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
179
  requirements:
169
180
  - - ">="
170
181
  - !ruby/object:Gem::Version
182
+ hash: 3
171
183
  segments:
172
184
  - 0
173
185
  version: "0"
@@ -176,6 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
188
  requirements:
177
189
  - - ">="
178
190
  - !ruby/object:Gem::Version
191
+ hash: 21
179
192
  segments:
180
193
  - 1
181
194
  - 3