weary 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe Weary::Requestable do
4
+
5
+ it_behaves_like "a Requestable" do
6
+ subject { Class.new { include Weary::Requestable }.new }
7
+ end
8
+
9
+ end
@@ -1,6 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Weary::Resource do
4
+ it_behaves_like "a Requestable" do
5
+ url = "http://github.com/api/v2/json/repos/show/mwunsch/weary"
6
+ subject { described_class.new "GET", url }
7
+ end
8
+
4
9
  describe "#url" do
5
10
  it "is an Addressable::Template" do
6
11
  url = "http://github.com/api/v2/json/repos/show/mwunsch/weary"
@@ -67,17 +72,9 @@ describe Weary::Resource do
67
72
  end
68
73
  end
69
74
 
70
- describe "#headers" do
71
- it "prepares headers for the request" do
72
- url = "http://github.com/api/v2/json/repos/show/{user}/{repo}"
73
- resource = described_class.new "GET", url
74
- resource.headers 'User-Agent' => 'RSpec'
75
- resource.headers.should eql 'User-Agent' => 'RSpec'
76
- end
77
- end
78
-
79
75
  describe "#use" do
80
76
  it "adds a middleware to the stack and passes them onto the request" do
77
+ require 'rack/lobster'
81
78
  url = "http://github.com/api/v2/json/repos/show/mwunsch/weary"
82
79
  resource = described_class.new "GET", url
83
80
  resource.use Rack::Lobster
@@ -86,15 +83,6 @@ describe Weary::Resource do
86
83
  end
87
84
  end
88
85
 
89
- describe "#user_agent" do
90
- it "updates the #headers hash with a User-Agent" do
91
- url = "http://github.com/api/v2/json/repos/show/{user}/{repo}"
92
- resource = described_class.new "GET", url
93
- resource.user_agent 'RSpec'
94
- resource.headers.should eql 'User-Agent' => 'RSpec'
95
- end
96
- end
97
-
98
86
  describe "#basic_auth!" do
99
87
  subject do
100
88
  url = "http://github.com/api/v2/json/repos/show/mwunsch/weary"
@@ -95,5 +95,15 @@ describe Weary::Response do
95
95
  response = Weary::Response.new "", 404, {'Content-Type' => 'text/plain'}
96
96
  expect { response.parse }.to raise_error
97
97
  end
98
+
99
+ it "receives an optional block for custom parsing" do
100
+ message = "Hello, world."
101
+ dump = Marshal.dump(message)
102
+ response = Weary::Response.new dump, 200, {'Content-Type' => 'text/plain'}
103
+ parsed = response.parse do |body, content_type|
104
+ Marshal.load(body)
105
+ end
106
+ parsed.should eql message
107
+ end
98
108
  end
99
109
  end
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
18
18
  s.require_paths = ['lib']
19
19
 
20
20
  s.add_runtime_dependency "rack", "~> 1.4.0"
21
- s.add_runtime_dependency "addressable", "~> 2.2.7"
21
+ s.add_runtime_dependency "addressable", "~> 2.3.2"
22
22
  s.add_runtime_dependency "promise", "~> 0.3.0"
23
23
  s.add_runtime_dependency "simple_oauth", "~> 0.1.5"
24
- s.add_runtime_dependency "multi_json", "~> 1.2.0"
24
+ s.add_runtime_dependency "multi_json", "~> 1.3.0"
25
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weary
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-26 00:00:00.000000000 Z
12
+ date: 2012-09-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &70166012867980 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,21 +21,31 @@ dependencies:
21
21
  version: 1.4.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70166012867980
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.4.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: addressable
27
- requirement: &70166012867300 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
31
36
  - !ruby/object:Gem::Version
32
- version: 2.2.7
37
+ version: 2.3.2
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70166012867300
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.3.2
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: promise
38
- requirement: &70166012866680 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 0.3.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70166012866680
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.3.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: simple_oauth
49
- requirement: &70166012866020 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,18 +69,28 @@ dependencies:
54
69
  version: 0.1.5
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70166012866020
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.1.5
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: multi_json
60
- requirement: &70166012864500 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
64
84
  - !ruby/object:Gem::Version
65
- version: 1.2.0
85
+ version: 1.3.0
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *70166012864500
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.3.0
69
94
  description: ! 'A framework and DSL to construct Ruby clients to RESTful web services. '
70
95
  email: mark@markwunsch.com
71
96
  executables: []
@@ -82,7 +107,9 @@ files:
82
107
  - Rakefile
83
108
  - lib/weary.rb
84
109
  - lib/weary/adapter.rb
110
+ - lib/weary/adapters/excon.rb
85
111
  - lib/weary/adapters/net_http.rb
112
+ - lib/weary/adapters/typhoeus.rb
86
113
  - lib/weary/client.rb
87
114
  - lib/weary/deferred.rb
88
115
  - lib/weary/env.rb
@@ -90,7 +117,9 @@ files:
90
117
  - lib/weary/middleware/basic_auth.rb
91
118
  - lib/weary/middleware/content_type.rb
92
119
  - lib/weary/middleware/oauth.rb
120
+ - lib/weary/middleware/timeout.rb
93
121
  - lib/weary/request.rb
122
+ - lib/weary/requestable.rb
94
123
  - lib/weary/resource.rb
95
124
  - lib/weary/response.rb
96
125
  - lib/weary/route.rb
@@ -98,16 +127,22 @@ files:
98
127
  - spec/spec_helper.rb
99
128
  - spec/support/shared_examples_for_a_rack_app.rb
100
129
  - spec/support/shared_examples_for_a_rack_env.rb
130
+ - spec/support/shared_examples_for_a_requestable.rb
101
131
  - spec/support/shared_examples_for_a_uri.rb
132
+ - spec/support/shared_examples_for_an_adapter.rb
102
133
  - spec/weary/adapter_spec.rb
134
+ - spec/weary/adapters/excon_spec.rb
103
135
  - spec/weary/adapters/nethttp_spec.rb
136
+ - spec/weary/adapters/typhoeus_spec.rb
104
137
  - spec/weary/client_spec.rb
105
138
  - spec/weary/deferred_spec.rb
106
139
  - spec/weary/env_spec.rb
107
140
  - spec/weary/middleware/basic_auth_spec.rb
108
141
  - spec/weary/middleware/content_type_spec.rb
109
142
  - spec/weary/middleware/oauth_spec.rb
143
+ - spec/weary/middleware/timeout_spec.rb
110
144
  - spec/weary/request_spec.rb
145
+ - spec/weary/requestable_spec.rb
111
146
  - spec/weary/resource_spec.rb
112
147
  - spec/weary/response_spec.rb
113
148
  - spec/weary/route_spec.rb
@@ -133,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
168
  version: '0'
134
169
  requirements: []
135
170
  rubyforge_project: weary
136
- rubygems_version: 1.8.11
171
+ rubygems_version: 1.8.23
137
172
  signing_key:
138
173
  specification_version: 3
139
174
  summary: A framework and DSL for the consumption of RESTful web services.
@@ -141,16 +176,22 @@ test_files:
141
176
  - spec/spec_helper.rb
142
177
  - spec/support/shared_examples_for_a_rack_app.rb
143
178
  - spec/support/shared_examples_for_a_rack_env.rb
179
+ - spec/support/shared_examples_for_a_requestable.rb
144
180
  - spec/support/shared_examples_for_a_uri.rb
181
+ - spec/support/shared_examples_for_an_adapter.rb
145
182
  - spec/weary/adapter_spec.rb
183
+ - spec/weary/adapters/excon_spec.rb
146
184
  - spec/weary/adapters/nethttp_spec.rb
185
+ - spec/weary/adapters/typhoeus_spec.rb
147
186
  - spec/weary/client_spec.rb
148
187
  - spec/weary/deferred_spec.rb
149
188
  - spec/weary/env_spec.rb
150
189
  - spec/weary/middleware/basic_auth_spec.rb
151
190
  - spec/weary/middleware/content_type_spec.rb
152
191
  - spec/weary/middleware/oauth_spec.rb
192
+ - spec/weary/middleware/timeout_spec.rb
153
193
  - spec/weary/request_spec.rb
194
+ - spec/weary/requestable_spec.rb
154
195
  - spec/weary/resource_spec.rb
155
196
  - spec/weary/response_spec.rb
156
197
  - spec/weary/route_spec.rb