weary 1.0.1 → 1.1.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.
@@ -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