wrest 1.0.0.beta7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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