resourceful 0.2.1 → 0.3.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.
@@ -50,7 +50,7 @@ describe Resourceful::Request do
50
50
  @net_http_adapter_response = mock('net_http_adapter_response')
51
51
  Resourceful::NetHttpAdapter.stub!(:make_request).and_return(@net_http_adapter_response)
52
52
 
53
- @response = mock('response', :code => 200, :authoritative= => true, :was_unsuccessful? => false)
53
+ @response = mock('response', :code => 200, :authoritative= => true, :was_unsuccessful? => false, :request_time= => nil)
54
54
  Resourceful::Response.stub!(:new).and_return(@response)
55
55
  end
56
56
 
@@ -70,6 +70,13 @@ describe Resourceful::Request do
70
70
  @request.request_time.should == now
71
71
  end
72
72
 
73
+ it 'should set the response\'s request time' do
74
+ now = Time.now
75
+ Time.stub!(:now).and_return(now)
76
+
77
+ @response.should_receive(:request_time=).with(now)
78
+ @request.response
79
+ end
73
80
  end
74
81
 
75
82
  describe '#should_be_redirected?' do
@@ -77,7 +84,7 @@ describe Resourceful::Request do
77
84
  @net_http_adapter_response = mock('net_http_adapter_response')
78
85
  Resourceful::NetHttpAdapter.stub!(:make_request).and_return(@net_http_adapter_response)
79
86
 
80
- @response = mock('response', :code => 200, :authoritative= => true, :was_unsuccessful? => false)
87
+ @response = mock('response', :code => 200, :authoritative= => true, :was_unsuccessful? => false, :request_time= => nil)
81
88
  Resourceful::Response.stub!(:new).and_return(@response)
82
89
  end
83
90
 
@@ -37,6 +37,15 @@ describe Resourceful::Resource do
37
37
  it 'should take a uri' do
38
38
  @resource.uri.should == @uri
39
39
  end
40
+
41
+ it 'should take some default_options' do
42
+ r = Resourceful::Resource.new(@accessor, @uri, :foo => :bar)
43
+ r.default_options.should == {:foo => :bar}
44
+ end
45
+
46
+ it 'should default to an empty hash for options' do
47
+ @resource.default_options.should == {}
48
+ end
40
49
  end
41
50
 
42
51
  describe '#effective_uri' do
@@ -67,6 +76,22 @@ describe Resourceful::Resource do
67
76
  @resource.do_read_request(:some_method, :foo => :bar)
68
77
  end
69
78
 
79
+ describe 'default options' do
80
+ before do
81
+ @resource.default_options = {:foo => :bar}
82
+ end
83
+
84
+ it 'should merge the header with the default options' do
85
+ Resourceful::Request.should_receive(:new).with(anything, anything, anything, :foo => :bar).and_return(@request)
86
+ make_request
87
+ end
88
+
89
+ it 'should override any default header with the request header' do
90
+ Resourceful::Request.should_receive(:new).with(anything, anything, anything, :foo => :baz).and_return(@request)
91
+ @resource.do_read_request(:some_method, :foo => :baz)
92
+ end
93
+ end
94
+
70
95
  describe 'non-success responses' do
71
96
  before do
72
97
  @uri = 'http://www.example.com/code/404'
@@ -164,7 +189,7 @@ describe Resourceful::Resource do
164
189
  end
165
190
 
166
191
  it 'should make a new resource from the new location' do
167
- new_resource = mock('resource', :do_read_request => @response)
192
+ new_resource = mock('resource', :do_read_request => @response, :uri => @uri)
168
193
  Resourceful::Resource.should_receive(:new).with(@accessor, @redirected_uri).and_return(new_resource)
169
194
  make_request
170
195
  end
@@ -244,7 +269,7 @@ describe Resourceful::Resource do
244
269
  describe '#do_write_request' do
245
270
 
246
271
  def make_request
247
- @resource.do_write_request(:some_method, "data", {})
272
+ @resource.do_write_request(:some_method, "data")
248
273
  end
249
274
 
250
275
  it 'should make a new request object from the method' do
@@ -252,33 +277,49 @@ describe Resourceful::Resource do
252
277
  @resource.do_write_request(:some_method, "data")
253
278
  end
254
279
 
280
+ describe 'default options' do
281
+ before do
282
+ @resource.default_options = {:foo => :bar}
283
+ end
284
+
285
+ it 'should merge the header with the default options' do
286
+ Resourceful::Request.should_receive(:new).with(anything, anything, anything, :foo => :bar).and_return(@request)
287
+ make_request
288
+ end
289
+
290
+ it 'should override any default header with the request header' do
291
+ Resourceful::Request.should_receive(:new).with(anything, anything, anything, :foo => :baz).and_return(@request)
292
+ @resource.do_write_request(:some_method, "data", :foo => :baz)
293
+ end
294
+ end
295
+
255
296
  describe 'non-success responses' do
256
297
  before do
257
298
  @uri = 'http://www.example.com/code/404'
258
299
  @resource = Resourceful::Resource.new(@accessor, @uri)
259
300
 
260
301
  @redirected_uri = 'http://www.example.com/get'
261
- @redirect_response = mock('redirect_response',
262
- :header => {'Location' => [@redirected_uri]},
263
- :is_redirect? => false,
264
- :is_success? => false,
265
- :is_not_authorized? => false,
266
- :code => 404)
302
+ @response = mock('response',
303
+ :header => {'Location' => [@redirected_uri]},
304
+ :is_redirect? => false,
305
+ :is_success? => false,
306
+ :is_not_authorized? => false,
307
+ :code => 404)
267
308
 
268
- @request.stub!(:response).and_return(@redirect_response, @response)
309
+ @request.stub!(:response).and_return(@response)
269
310
  @request.stub!(:method).and_return(:post)
270
311
  @request.stub!(:uri).and_return('http://www.example.com/code/404')
271
312
  end
272
313
 
273
314
  it 'should raise UnsuccessfulHttpRequestError' do
274
315
  lambda {
275
- @resource.do_write_request(:post, "data", anything)
316
+ @resource.do_write_request(:post, "data")
276
317
  }.should raise_error(Resourceful::UnsuccessfulHttpRequestError)
277
318
  end
278
319
 
279
320
  it 'should give a reasonable error message' do
280
321
  lambda {
281
- @resource.do_write_request(:post, "data", anything)
322
+ @resource.do_write_request(:post, "data")
282
323
  }.should raise_error("post request to <http://www.example.com/code/404> failed with code 404")
283
324
  end
284
325
  end
@@ -123,9 +123,8 @@ end unless defined? AuthorizationResponder
123
123
 
124
124
  describe 'simple http server', :shared => true do
125
125
  before(:all) do
126
- #setup a thin http server we can connect to
127
- require 'thin'
128
126
  require 'rack'
127
+ require 'thin'
129
128
 
130
129
  app = Rack::Builder.new do |env|
131
130
  use Rack::ShowExceptions
@@ -147,8 +146,8 @@ describe 'simple http server', :shared => true do
147
146
  #spawn the server in a separate thread
148
147
  @httpd = Thread.new do
149
148
  Thin::Logging.silent = true
150
- #Thin::Logging.debug = true
151
- Thin::Server.start(app)
149
+ # Thin::Logging.debug = true
150
+ Thin::Server.start(app)
152
151
  end
153
152
  #give the server a chance to initialize
154
153
  sleep 0.05
@@ -56,6 +56,15 @@ describe 'http server' do
56
56
  resp[1]['Foo'].should == ['bar']
57
57
  end
58
58
 
59
+ it 'should allow the Date header to be overridden' do
60
+ uri = URI.escape("http://localhost:3000/header?{Date: \"Thu, 21 Aug 2008 20:00:00 GMT\"}")
61
+ resp = Resourceful::NetHttpAdapter.make_request(:get, uri)
62
+
63
+ resp[1].should have_key('Date')
64
+ resp[1]['Date'].should == ['Thu, 21 Aug 2008 20:00:00 GMT']
65
+ end
66
+
67
+
59
68
  it 'should parse escaped uris properly' do
60
69
  uri = URI.escape("http://localhost:3000/header?{Expire: \"#{Time.now.httpdate}\"}")
61
70
 
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,7 @@ require 'spec'
4
4
  require 'pp'
5
5
  require 'facets'
6
6
 
7
- #$LOAD_PATH << Pathname(__FILE__).dirname + "../lib"
8
- $LOAD_PATH << File.dirname(__FILE__) + "../lib"
7
+ $LOAD_PATH << Pathname(__FILE__).dirname + "../lib"
9
8
  require 'resourceful/util'
10
9
  require 'resourceful'
11
10
  require 'resourceful/http_accessor'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resourceful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - Paul Sadauskas & Peter Williams
7
+ - Paul Sadauskas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-31 00:00:00 -06:00
12
+ date: 2008-12-05 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -52,26 +52,79 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: "0"
54
54
  version:
55
- description: Resourceful provides a convenient Ruby API for making HTTP requests.
55
+ - !ruby/object:Gem::Dependency
56
+ name: andand
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: thin
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: yard
77
+ type: :development
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ description: An HTTP library for Ruby that takes advantage of everything HTTP has to offer.
56
86
  email: psadauskas@gmail.com
57
87
  executables: []
58
88
 
59
89
  extensions: []
60
90
 
61
- extra_rdoc_files: []
62
-
63
- files:
64
- - MIT-LICENSE
91
+ extra_rdoc_files:
92
+ - lib/resourceful.rb
93
+ - lib/resourceful/authentication_manager.rb
94
+ - lib/resourceful/util.rb
95
+ - lib/resourceful/resource.rb
96
+ - lib/resourceful/memcache_cache_manager.rb
97
+ - lib/resourceful/net_http_adapter.rb
98
+ - lib/resourceful/http_accessor.rb
99
+ - lib/resourceful/stubbed_resource_proxy.rb
100
+ - lib/resourceful/header.rb
101
+ - lib/resourceful/cache_manager.rb
102
+ - lib/resourceful/options_interpreter.rb
103
+ - lib/resourceful/response.rb
104
+ - lib/resourceful/request.rb
65
105
  - README.markdown
66
- - Rakefile
106
+ files:
107
+ - lib/resourceful.rb
108
+ - lib/resourceful/authentication_manager.rb
109
+ - lib/resourceful/util.rb
110
+ - lib/resourceful/resource.rb
111
+ - lib/resourceful/memcache_cache_manager.rb
112
+ - lib/resourceful/net_http_adapter.rb
113
+ - lib/resourceful/http_accessor.rb
114
+ - lib/resourceful/stubbed_resource_proxy.rb
115
+ - lib/resourceful/header.rb
116
+ - lib/resourceful/cache_manager.rb
117
+ - lib/resourceful/options_interpreter.rb
118
+ - lib/resourceful/response.rb
119
+ - lib/resourceful/request.rb
67
120
  - spec/acceptance_shared_specs.rb
68
121
  - spec/spec.opts
69
122
  - spec/acceptance_spec.rb
70
123
  - spec/simple_http_server_shared_spec_spec.rb
71
124
  - spec/spec_helper.rb
72
- - spec/resourceful
73
125
  - spec/resourceful/header_spec.rb
74
126
  - spec/resourceful/authentication_manager_spec.rb
127
+ - spec/resourceful/memcache_cache_manager_spec.rb
75
128
  - spec/resourceful/response_spec.rb
76
129
  - spec/resourceful/options_interpreter_spec.rb
77
130
  - spec/resourceful/http_accessor_spec.rb
@@ -81,45 +134,41 @@ files:
81
134
  - spec/resourceful/cache_manager_spec.rb
82
135
  - spec/resourceful/net_http_adapter_spec.rb
83
136
  - spec/simple_http_server_shared_spec.rb
84
- - lib/resourceful.rb
85
- - lib/resourceful
86
- - lib/resourceful/authentication_manager.rb
87
- - lib/resourceful/util.rb
88
- - lib/resourceful/resource.rb
89
- - lib/resourceful/net_http_adapter.rb
90
- - lib/resourceful/version.rb
91
- - lib/resourceful/http_accessor.rb
92
- - lib/resourceful/stubbed_resource_proxy.rb
93
- - lib/resourceful/header.rb
94
- - lib/resourceful/cache_manager.rb
95
- - lib/resourceful/options_interpreter.rb
96
- - lib/resourceful/response.rb
97
- - lib/resourceful/request.rb
98
- has_rdoc: false
99
- homepage: https://github.com/paul/resourceful/tree/master
137
+ - Manifest
138
+ - Rakefile
139
+ - README.markdown
140
+ - MIT-LICENSE
141
+ - resourceful.gemspec
142
+ has_rdoc: true
143
+ homepage: http://github.com/paul/resourceful
100
144
  post_install_message:
101
- rdoc_options: []
102
-
145
+ rdoc_options:
146
+ - --line-numbers
147
+ - --inline-source
148
+ - --title
149
+ - Resourceful
150
+ - --main
151
+ - README.markdown
103
152
  require_paths:
104
153
  - lib
105
154
  required_ruby_version: !ruby/object:Gem::Requirement
106
155
  requirements:
107
156
  - - ">="
108
157
  - !ruby/object:Gem::Version
109
- version: 1.8.6
158
+ version: "0"
110
159
  version:
111
160
  required_rubygems_version: !ruby/object:Gem::Requirement
112
161
  requirements:
113
162
  - - ">="
114
163
  - !ruby/object:Gem::Version
115
- version: "0"
164
+ version: "1.2"
116
165
  version:
117
166
  requirements: []
118
167
 
119
168
  rubyforge_project: resourceful
120
- rubygems_version: 1.2.0
169
+ rubygems_version: 1.3.1
121
170
  signing_key:
122
171
  specification_version: 2
123
- summary: Resourceful provides a convenient Ruby API for making HTTP requests.
172
+ summary: An HTTP library for Ruby that takes advantage of everything HTTP has to offer.
124
173
  test_files: []
125
174
 
@@ -1 +0,0 @@
1
- RESOURCEFUL_VERSION = '0.2'