shutl_resource 0.10.5 → 0.10.6

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.
@@ -1,9 +1,9 @@
1
1
  require 'logger'
2
2
 
3
3
  module Shutl::Resource
4
-
5
4
  class << self
6
- attr_writer :raise_exceptions_on_validation
5
+ attr_writer :raise_exceptions_on_validation,
6
+ :raise_exceptions_on_no_quotes_generated
7
7
 
8
8
  def raise_exceptions_on_validation
9
9
  if @raise_exceptions_on_validation.nil?
@@ -12,6 +12,14 @@ module Shutl::Resource
12
12
 
13
13
  @raise_exceptions_on_validation
14
14
  end
15
+
16
+ def raise_exceptions_on_no_quotes_generated
17
+ if @raise_exceptions_on_no_quotes_generated.nil?
18
+ @raise_exceptions_on_no_quotes_generated = true
19
+ end
20
+
21
+ @raise_exceptions_on_no_quotes_generated
22
+ end
15
23
  end
16
24
 
17
25
  def configure(*args, &block)
@@ -234,7 +234,13 @@ module Shutl::Resource
234
234
  def check_fail response, message
235
235
  c = response.code
236
236
  failure_klass = case c
237
- when 299 then Shutl::NoQuotesGenerated
237
+ when 299
238
+ if Shutl::Resource.raise_exceptions_on_no_quotes_generated
239
+ Shutl::NoQuotesGenerated
240
+ else
241
+ nil
242
+ end
243
+
238
244
  when 400 then Shutl::BadRequest
239
245
  when 401 then Shutl::UnauthorizedAccess
240
246
  when 403 then Shutl::ForbiddenAccess
@@ -1,5 +1,5 @@
1
1
  module Shutl
2
2
  module Resource
3
- VERSION = '0.10.5'
3
+ VERSION = '0.10.6'
4
4
  end
5
5
  end
@@ -81,15 +81,44 @@ describe Shutl::Resource::Rest do
81
81
  resource.instance_variable_get('@b').should == 2
82
82
  end
83
83
 
84
- Shutl::Resource.raise_exceptions_on_validation = true
84
+ context "299" do
85
+ specify do
86
+ @default = Shutl::Resource.raise_exceptions_on_no_quotes_generated
87
+ Shutl::Resource.raise_exceptions_on_no_quotes_generated = false
88
+
89
+ stub_request(:get, 'http://host/test_rests/b').
90
+ to_return(status: 299, :body => '{"errors": {"base":["No quotes for you today"]}}')
91
+
92
+ expect(-> { TestRest.find('b') }).not_to raise_error Shutl::NoQuotesGenerated
93
+ Shutl::Resource.raise_exceptions_on_no_quotes_generated = @default
94
+ end
95
+ end
96
+
97
+ context "422" do
98
+ before do
99
+ @default = Shutl::Resource.raise_exceptions_on_validation
100
+ Shutl::Resource.raise_exceptions_on_validation = true
101
+ end
102
+
103
+ after do
104
+ Shutl::Resource.raise_exceptions_on_validation = @default
105
+ end
106
+ specify do
107
+ stub_request(:get, 'http://host/test_rests/b').
108
+ to_return(status: 422)
109
+
110
+ expect(-> { TestRest.find('b') }).to raise_error(Shutl::ResourceInvalid)
111
+ end
112
+ end
113
+
85
114
  {
115
+ 299 => Shutl::NoQuotesGenerated,
86
116
  400 => Shutl::BadRequest,
87
117
  401 => Shutl::UnauthorizedAccess,
88
118
  403 => Shutl::ForbiddenAccess,
89
119
  404 => Shutl::ResourceNotFound,
90
120
  409 => Shutl::ResourceConflict,
91
121
  410 => Shutl::ResourceGone,
92
- 422 => Shutl::ResourceInvalid,
93
122
  503 => Shutl::ServiceUnavailable,
94
123
  501..502 => Shutl::ServerError,
95
124
  504..599 => Shutl::ServerError
@@ -112,6 +141,7 @@ describe Shutl::Resource::Rest do
112
141
  end
113
142
  end
114
143
 
144
+
115
145
  it 'should add a id based on the resource id' do
116
146
  resource = TestRest.find('a')
117
147
 
@@ -124,9 +154,9 @@ describe Shutl::Resource::Rest do
124
154
  to_return(:status => 200, :body => '{"test_rest": {}}',
125
155
  :headers => headers)
126
156
 
127
- TestRest.find('new resource')
157
+ TestRest.find('new resource')
128
158
 
129
- request.should have_been_requested
159
+ request.should have_been_requested
130
160
  end
131
161
 
132
162
  context 'with url arguments' do
@@ -299,9 +329,9 @@ describe Shutl::Resource::Rest do
299
329
  with(body: '{"test_rest":{"a":"a","b":"b"}}',
300
330
  headers: headers)
301
331
 
302
- TestRest.create(a: 'a', b: 'b')
332
+ TestRest.create(a: 'a', b: 'b')
303
333
 
304
- request.should have_been_requested
334
+ request.should have_been_requested
305
335
  end
306
336
 
307
337
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shutl_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.5
4
+ version: 0.10.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -15,7 +15,7 @@ date: 2013-07-19 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty
18
- requirement: &70115703855460 !ruby/object:Gem::Requirement
18
+ requirement: &70172591200440 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: 0.10.0
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70115703855460
26
+ version_requirements: *70172591200440
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: shutl_auth
29
- requirement: &70115703853480 !ruby/object:Gem::Requirement
29
+ requirement: &70172591199320 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - =
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: 0.8.0
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70115703853480
37
+ version_requirements: *70172591199320
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: activemodel
40
- requirement: &70115703852820 !ruby/object:Gem::Requirement
40
+ requirement: &70172591198300 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70115703852820
48
+ version_requirements: *70172591198300
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rake
51
- requirement: &70115703850460 !ruby/object:Gem::Requirement
51
+ requirement: &70172591220740 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '0'
57
57
  type: :development
58
58
  prerelease: false
59
- version_requirements: *70115703850460
59
+ version_requirements: *70172591220740
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rspec
62
- requirement: &70115703870120 !ruby/object:Gem::Requirement
62
+ requirement: &70172591214620 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ~>
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 2.11.0
68
68
  type: :development
69
69
  prerelease: false
70
- version_requirements: *70115703870120
70
+ version_requirements: *70172591214620
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: debugger
73
- requirement: &70115703885320 !ruby/object:Gem::Requirement
73
+ requirement: &70172591232420 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *70115703885320
81
+ version_requirements: *70172591232420
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: webmock
84
- requirement: &70115703884340 !ruby/object:Gem::Requirement
84
+ requirement: &70172591231420 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ~>
@@ -89,7 +89,7 @@ dependencies:
89
89
  version: 1.8.7
90
90
  type: :development
91
91
  prerelease: false
92
- version_requirements: *70115703884340
92
+ version_requirements: *70172591231420
93
93
  description: Shutl Rest resource
94
94
  email:
95
95
  - davidr@shutl.co.uk
@@ -140,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  segments:
142
142
  - 0
143
- hash: -1303369992111380096
143
+ hash: -655986128022496311
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  version: '0'
150
150
  segments:
151
151
  - 0
152
- hash: -1303369992111380096
152
+ hash: -655986128022496311
153
153
  requirements: []
154
154
  rubyforge_project:
155
155
  rubygems_version: 1.8.11