rest_my_case 1.9.4 → 1.10.1
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.
- checksums.yaml +4 -4
- data/lib/rest_my_case/base.rb +12 -4
- data/lib/rest_my_case/context/errors/base.rb +3 -15
- data/lib/rest_my_case/context/errors/status.rb +5 -3
- data/lib/rest_my_case/context/http_status.rb +11 -4
- data/lib/rest_my_case/http_status.rb +5 -4
- data/lib/rest_my_case/status.rb +14 -9
- data/lib/rest_my_case/version.rb +1 -1
- data/spec/rest_my_case/base_spec.rb +5 -10
- data/spec/rest_my_case/http_status_spec.rb +20 -11
- data/spec/rest_my_case/status_spec.rb +56 -31
- data/spec/rest_my_case/validator_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c8fcfcdfef03f7d258b3ccd34e73c919adfb285
|
|
4
|
+
data.tar.gz: b647c1d6d9a57071f36480a0cc410df2ad0a8b80
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bff3902db329514d14c1957a5d0d0140e139a0e9b92cb2c0a32aed4cc962a3a6acca3b067813427855b7d564b65d83e3b9e7b13c168554ca6f3acad28d220117
|
|
7
|
+
data.tar.gz: 8dd1ffb6a3f9d7a2744667502260c0eac64ac951e63c12b62b983cc333348c8fdbe6b8a2556f45bd15d9b3ff1f65a2125fd70ea6a3107b8f0aed62a7f7dc2302
|
data/lib/rest_my_case/base.rb
CHANGED
|
@@ -9,6 +9,10 @@ module RestMyCase
|
|
|
9
9
|
Judge::Base, DefenseAttorney::Base, RestMyCase::Base, Context::Base
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
+
def self.trial_court=(new_trial_court)
|
|
13
|
+
@trial_court = new_trial_court
|
|
14
|
+
end
|
|
15
|
+
|
|
12
16
|
def self.depends(*use_case_classes)
|
|
13
17
|
dependencies.push(*use_case_classes)
|
|
14
18
|
end
|
|
@@ -78,12 +82,16 @@ module RestMyCase
|
|
|
78
82
|
abort && fail(Errors::Abort)
|
|
79
83
|
end
|
|
80
84
|
|
|
81
|
-
def error(
|
|
82
|
-
|
|
85
|
+
def error(error_data = '')
|
|
86
|
+
error_data = { message: error_data } unless error_data.is_a?(Hash)
|
|
87
|
+
|
|
88
|
+
error_data[:class_name] = self.class.name
|
|
89
|
+
|
|
90
|
+
abort && context.errors.add(error_data)
|
|
83
91
|
end
|
|
84
92
|
|
|
85
|
-
def error!(
|
|
86
|
-
error(
|
|
93
|
+
def error!(error_data = '')
|
|
94
|
+
error(error_data) && fail(Errors::Abort)
|
|
87
95
|
end
|
|
88
96
|
|
|
89
97
|
def skip
|
|
@@ -2,7 +2,7 @@ module RestMyCase
|
|
|
2
2
|
module Context
|
|
3
3
|
module Errors
|
|
4
4
|
|
|
5
|
-
class Base <
|
|
5
|
+
class Base < Array
|
|
6
6
|
|
|
7
7
|
def initialize(context)
|
|
8
8
|
super()
|
|
@@ -10,20 +10,8 @@ module RestMyCase
|
|
|
10
10
|
@context = context
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def add(
|
|
14
|
-
self
|
|
15
|
-
|
|
16
|
-
self[class_name].push(message.to_s)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def messages
|
|
20
|
-
self.values.flatten
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def full_messages
|
|
24
|
-
self.map do |class_name, messages|
|
|
25
|
-
"#{class_name}: #{messages.join(', ')}"
|
|
26
|
-
end
|
|
13
|
+
def add(error)
|
|
14
|
+
self.push(error)
|
|
27
15
|
end
|
|
28
16
|
|
|
29
17
|
end
|
|
@@ -4,12 +4,14 @@ module RestMyCase
|
|
|
4
4
|
|
|
5
5
|
class Status < Base
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
attr_reader :last_known_error
|
|
8
|
+
|
|
9
|
+
def add(error)
|
|
8
10
|
super
|
|
9
11
|
|
|
10
|
-
status
|
|
12
|
+
@context.status.send("#{error[:status]}!")
|
|
11
13
|
|
|
12
|
-
@
|
|
14
|
+
@last_known_error = error
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
end
|
|
@@ -59,10 +59,17 @@ module RestMyCase
|
|
|
59
59
|
RAILS_HTTP_STATUS[status.to_sym]
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
def
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
def error_response
|
|
63
|
+
|
|
64
|
+
if errors.last_known_error
|
|
65
|
+
response = errors.last_known_error.dup
|
|
66
|
+
response.delete :class_name
|
|
67
|
+
response[:http_status] = http_status
|
|
68
|
+
|
|
69
|
+
response
|
|
70
|
+
else
|
|
71
|
+
{ message: 'unkown error' }
|
|
72
|
+
end
|
|
66
73
|
end
|
|
67
74
|
|
|
68
75
|
end
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
module RestMyCase
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
module HttpStatus
|
|
4
4
|
|
|
5
|
-
def self.
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
def self.included(parent_class)
|
|
6
|
+
parent_class.include Status
|
|
7
|
+
|
|
8
|
+
parent_class.trial_court.context_class = Context::HttpStatus
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
end
|
data/lib/rest_my_case/status.rb
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
module RestMyCase
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
module Status
|
|
4
4
|
|
|
5
|
-
def self.
|
|
6
|
-
|
|
7
|
-
Judge::Base, DefenseAttorney::Base, Base, Context::Status
|
|
5
|
+
def self.included(parent_class)
|
|
6
|
+
parent_class.trial_court.context_class = Context::Status
|
|
8
7
|
end
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
def status
|
|
10
|
+
context.status
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def failure(status, error = nil)
|
|
14
|
+
error = { message: error } unless error.is_a?(Hash)
|
|
15
|
+
|
|
16
|
+
error[:status] = status
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
error(Helpers.blank?(message) ? "#{status}" : "#{status} - #{message}")
|
|
18
|
+
error(error)
|
|
14
19
|
end
|
|
15
20
|
|
|
16
|
-
def failure!(status,
|
|
17
|
-
failure(status,
|
|
21
|
+
def failure!(status, error = nil)
|
|
22
|
+
failure(status, error) && fail(Errors::Abort)
|
|
18
23
|
end
|
|
19
24
|
|
|
20
25
|
end
|
data/lib/rest_my_case/version.rb
CHANGED
|
@@ -107,8 +107,7 @@ describe RestMyCase::Base do
|
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
it "context should contain only one error" do
|
|
110
|
-
expect(@context.errors).to match a_hash_including({"Perform::ValidateName"
|
|
111
|
-
expect(@context.errors.full_messages).to eq ["Perform::ValidateName: "]
|
|
110
|
+
expect(@context.errors).to match a_hash_including({ message: '', class_name: "Perform::ValidateName" })
|
|
112
111
|
end
|
|
113
112
|
|
|
114
113
|
it "context prove that only the correct method have ran" do
|
|
@@ -130,8 +129,7 @@ describe RestMyCase::Base do
|
|
|
130
129
|
end
|
|
131
130
|
|
|
132
131
|
it "context should contain only one error" do
|
|
133
|
-
expect(@context.errors).to match a_hash_including({"Perform::ValidateName"
|
|
134
|
-
expect(@context.errors.full_messages).to eq ["Perform::ValidateName: "]
|
|
132
|
+
expect(@context.errors).to match a_hash_including({ message: '', class_name: "Perform::ValidateName" })
|
|
135
133
|
end
|
|
136
134
|
|
|
137
135
|
it "context prove that only the correct method have ran" do
|
|
@@ -232,8 +230,7 @@ describe RestMyCase::Base do
|
|
|
232
230
|
end
|
|
233
231
|
|
|
234
232
|
it "context should contain only 2 errors" do
|
|
235
|
-
expect(@context.errors).to match a_hash_including({"Perform::ValidateName"
|
|
236
|
-
expect(@context.errors.full_messages).to eq ["Perform::ValidateName: ", "Perform::ValidateBody: "]
|
|
233
|
+
expect(@context.errors).to match a_hash_including({ message: '', class_name: "Perform::ValidateName"}, { message: '', class_name: "Perform::ValidateBody" })
|
|
237
234
|
end
|
|
238
235
|
|
|
239
236
|
it "context prove that only the correct method have ran" do
|
|
@@ -257,8 +254,7 @@ describe RestMyCase::Base do
|
|
|
257
254
|
end
|
|
258
255
|
|
|
259
256
|
it "context should contain only 2 errors" do
|
|
260
|
-
expect(@context.errors).to match a_hash_including({"Perform::ValidateName"
|
|
261
|
-
expect(@context.errors.full_messages).to eq ["Perform::ValidateName: ", "Perform::ValidateBody: "]
|
|
257
|
+
expect(@context.errors).to match a_hash_including({ message: '', class_name: "Perform::ValidateName" }, { message: '', class_name: "Perform::ValidateBody" })
|
|
262
258
|
end
|
|
263
259
|
|
|
264
260
|
it "context prove that only the correct method have ran" do
|
|
@@ -293,8 +289,7 @@ describe RestMyCase::Base do
|
|
|
293
289
|
end
|
|
294
290
|
|
|
295
291
|
it "context should contain only 4 errors" do
|
|
296
|
-
expect(@context.errors).to match a_hash_including({"Perform::BuildPost"
|
|
297
|
-
expect(@context.errors.full_messages).to eq ["Perform::BuildPost: ", "Perform::ValidateName: ", "Perform::ValidateBody: ", "Perform::SavePost: "]
|
|
292
|
+
expect(@context.errors).to match a_hash_including({ message: '', class_name: "Perform::BuildPost" }, { message: '', class_name: "Perform::ValidateName" }, { message: '', class_name: "Perform::ValidateBody" }, { message: '', class_name: "Perform::SavePost" })
|
|
298
293
|
end
|
|
299
294
|
|
|
300
295
|
it "context prove that only the correct method have ran" do
|
|
@@ -3,7 +3,10 @@ require 'spec_helper'
|
|
|
3
3
|
describe RestMyCase::HttpStatus do
|
|
4
4
|
|
|
5
5
|
context "when status.not_found! is used" do
|
|
6
|
-
NotFound = Class.new(RestMyCase::
|
|
6
|
+
NotFound = Class.new(RestMyCase::Base) do
|
|
7
|
+
include RestMyCase::HttpStatus
|
|
8
|
+
def perform; status.not_found!; end
|
|
9
|
+
end
|
|
7
10
|
|
|
8
11
|
before { @context = NotFound.perform }
|
|
9
12
|
|
|
@@ -11,13 +14,16 @@ describe RestMyCase::HttpStatus do
|
|
|
11
14
|
expect(@context.http_status).to be 404
|
|
12
15
|
end
|
|
13
16
|
|
|
14
|
-
it "@context.
|
|
15
|
-
expect(@context.
|
|
17
|
+
it "@context.error_response should only list the class's dependencies" do
|
|
18
|
+
expect(@context.error_response).to match a_hash_including({ message: 'unkown error' })
|
|
16
19
|
end
|
|
17
20
|
end
|
|
18
21
|
|
|
19
22
|
context "when failure(:unprocessable_entity) is used" do
|
|
20
|
-
UnprocessableEntity = Class.new(RestMyCase::
|
|
23
|
+
UnprocessableEntity = Class.new(RestMyCase::Base) do
|
|
24
|
+
include RestMyCase::HttpStatus
|
|
25
|
+
def perform; failure(:unprocessable_entity); end
|
|
26
|
+
end
|
|
21
27
|
|
|
22
28
|
before { @context = UnprocessableEntity.perform }
|
|
23
29
|
|
|
@@ -25,22 +31,25 @@ describe RestMyCase::HttpStatus do
|
|
|
25
31
|
expect(@context.http_status).to be 422
|
|
26
32
|
end
|
|
27
33
|
|
|
28
|
-
it "@context.
|
|
29
|
-
expect(@context.
|
|
34
|
+
it "@context.error_response should only list the class's dependencies" do
|
|
35
|
+
expect(@context.error_response).to match a_hash_including({ status: :unprocessable_entity, http_status: 422, message: nil })
|
|
30
36
|
end
|
|
31
37
|
end
|
|
32
38
|
|
|
33
|
-
context "when failure!(:
|
|
34
|
-
InternalServerError = Class.new(RestMyCase::
|
|
39
|
+
context "when failure!(:service_unavailable) is used" do
|
|
40
|
+
InternalServerError = Class.new(RestMyCase::Base) do
|
|
41
|
+
include RestMyCase::HttpStatus
|
|
42
|
+
def perform; failure!(:service_unavailable, { code: 404, message: 'github could not found repo' }); end
|
|
43
|
+
end
|
|
35
44
|
|
|
36
45
|
before { @context = InternalServerError.perform }
|
|
37
46
|
|
|
38
47
|
it "@context.http_status should only list the class's dependencies" do
|
|
39
|
-
expect(@context.http_status).to be
|
|
48
|
+
expect(@context.http_status).to be 503
|
|
40
49
|
end
|
|
41
50
|
|
|
42
|
-
it "@context.
|
|
43
|
-
expect(@context.
|
|
51
|
+
it "@context.error_response should only list the class's dependencies" do
|
|
52
|
+
expect(@context.error_response).to match a_hash_including({ status: :service_unavailable, http_status: 503, code: 404, message: "github could not found repo" })
|
|
44
53
|
end
|
|
45
54
|
end
|
|
46
55
|
|
|
@@ -5,9 +5,14 @@ describe RestMyCase::Status do
|
|
|
5
5
|
describe "context#status" do
|
|
6
6
|
|
|
7
7
|
context "when status.not_found! is used" do
|
|
8
|
-
|
|
8
|
+
StatusTestCase1 = Class.new(RestMyCase::Base) do
|
|
9
|
+
include RestMyCase::Status
|
|
10
|
+
def perform
|
|
11
|
+
status.accepted!
|
|
12
|
+
end
|
|
13
|
+
end
|
|
9
14
|
|
|
10
|
-
before { @context =
|
|
15
|
+
before { @context = StatusTestCase1.perform }
|
|
11
16
|
|
|
12
17
|
it "@context.status.accepted? should be true" do
|
|
13
18
|
expect(@context.status.accepted?).to be true
|
|
@@ -19,50 +24,77 @@ describe RestMyCase::Status do
|
|
|
19
24
|
end
|
|
20
25
|
|
|
21
26
|
context "when error(:unprocessable_entity) is used" do
|
|
22
|
-
|
|
27
|
+
StatusTestCase2 = Class.new(RestMyCase::Base) do
|
|
28
|
+
include RestMyCase::Status
|
|
23
29
|
def perform
|
|
24
30
|
error(:unprocessable_entity)
|
|
25
31
|
context.next_line = true
|
|
26
32
|
end
|
|
27
33
|
end
|
|
28
34
|
|
|
29
|
-
before { @context =
|
|
35
|
+
before { @context = StatusTestCase2.perform }
|
|
30
36
|
|
|
31
|
-
it "@context.status.unprocessable_entity? should be
|
|
32
|
-
expect(@context.status.unprocessable_entity?).to be
|
|
37
|
+
it "@context.status.unprocessable_entity? should be false" do
|
|
38
|
+
expect(@context.status.unprocessable_entity?).to be false
|
|
33
39
|
end
|
|
34
40
|
|
|
35
41
|
it "@context.next_line should be true" do
|
|
36
42
|
expect(@context.next_line).to be true
|
|
37
43
|
end
|
|
38
44
|
|
|
39
|
-
it "@context.status.ok? should be
|
|
40
|
-
expect(@context.status.ok?).to be
|
|
45
|
+
it "@context.status.ok? should be true" do
|
|
46
|
+
expect(@context.status.ok?).to be true
|
|
41
47
|
end
|
|
42
48
|
|
|
43
49
|
it "context's errors should have a proper message" do
|
|
44
|
-
message
|
|
45
|
-
|
|
46
|
-
expect(@context.errors["TestCase2"]).to eq [message]
|
|
47
|
-
expect(@context.errors.messages).to eq [message]
|
|
50
|
+
expect(@context.errors).to match [a_hash_including({ message: :unprocessable_entity, class_name: "StatusTestCase2" })]
|
|
48
51
|
end
|
|
49
52
|
end
|
|
50
53
|
|
|
51
54
|
context "when error!(:internal_server_error) is used" do
|
|
52
|
-
|
|
55
|
+
StatusTestCase3 = Class.new(RestMyCase::Base) do
|
|
56
|
+
include RestMyCase::Status
|
|
53
57
|
def perform
|
|
54
58
|
error!(:internal_server_error)
|
|
55
59
|
context.next_line = true
|
|
56
60
|
end
|
|
57
61
|
end
|
|
58
62
|
|
|
59
|
-
before { @context =
|
|
63
|
+
before { @context = StatusTestCase3.perform }
|
|
64
|
+
|
|
65
|
+
it "@context.status.internal_server_error? should be false" do
|
|
66
|
+
expect(@context.status.internal_server_error?).to be false
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "@context.next_line should raise an error" do
|
|
70
|
+
expect { context.next_line }.to raise_error
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "@context.status.ok? should be true" do
|
|
74
|
+
expect(@context.status.ok?).to be true
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "context's errors should have a proper message" do
|
|
78
|
+
expect(@context.errors).to match [a_hash_including({ message: :internal_server_error, class_name: "StatusTestCase3" })]
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
context "when error!(status: :internal_server_error, message: 'something bad') is used" do
|
|
83
|
+
StatusTestCase4 = Class.new(RestMyCase::Base) do
|
|
84
|
+
include RestMyCase::Status
|
|
85
|
+
def perform
|
|
86
|
+
error!(status: :internal_server_error, message: 'something bad', yada: true)
|
|
87
|
+
context.next_line = true
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
before { @context = StatusTestCase4.perform }
|
|
60
92
|
|
|
61
93
|
it "@context.status.internal_server_error? should be true" do
|
|
62
94
|
expect(@context.status.internal_server_error?).to be true
|
|
63
95
|
end
|
|
64
96
|
|
|
65
|
-
it "@context.next_line should
|
|
97
|
+
it "@context.next_line should raise an error" do
|
|
66
98
|
expect { context.next_line }.to raise_error
|
|
67
99
|
end
|
|
68
100
|
|
|
@@ -71,22 +103,20 @@ describe RestMyCase::Status do
|
|
|
71
103
|
end
|
|
72
104
|
|
|
73
105
|
it "context's errors should have a proper message" do
|
|
74
|
-
message
|
|
75
|
-
|
|
76
|
-
expect(@context.errors["TestCase3"]).to eq [message]
|
|
77
|
-
expect(@context.errors.messages).to eq [message]
|
|
106
|
+
expect(@context.errors).to match [a_hash_including({ status: :internal_server_error, message: 'something bad', class_name: "StatusTestCase4", yada: true })]
|
|
78
107
|
end
|
|
79
108
|
end
|
|
80
109
|
|
|
81
110
|
context "when failure(:unprocessable_entity) is used" do
|
|
82
|
-
|
|
111
|
+
StatusTestCase5 = Class.new(RestMyCase::Base) do
|
|
112
|
+
include RestMyCase::Status
|
|
83
113
|
def perform
|
|
84
114
|
failure(:unprocessable_entity, 'invalid id')
|
|
85
115
|
context.next_line = true
|
|
86
116
|
end
|
|
87
117
|
end
|
|
88
118
|
|
|
89
|
-
before { @context =
|
|
119
|
+
before { @context = StatusTestCase5.perform }
|
|
90
120
|
|
|
91
121
|
it "@context.status.unprocessable_entity? should be true" do
|
|
92
122
|
expect(@context.status.unprocessable_entity?).to be true
|
|
@@ -101,22 +131,20 @@ describe RestMyCase::Status do
|
|
|
101
131
|
end
|
|
102
132
|
|
|
103
133
|
it "context's errors should have a proper message" do
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
expect(@context.errors["TestCase4"]).to eq [message]
|
|
107
|
-
expect(@context.errors.messages).to eq [message]
|
|
134
|
+
expect(@context.errors).to match [a_hash_including({ status: :unprocessable_entity, message: 'invalid id', class_name: "StatusTestCase5" })]
|
|
108
135
|
end
|
|
109
136
|
end
|
|
110
137
|
|
|
111
138
|
context "when failure!(:internal_server_error) is used" do
|
|
112
|
-
|
|
139
|
+
StatusTestCase6 = Class.new(RestMyCase::Base) do
|
|
140
|
+
include RestMyCase::Status
|
|
113
141
|
def perform
|
|
114
142
|
failure!(:internal_server_error, 'while saving the resource')
|
|
115
143
|
context.next_line = true
|
|
116
144
|
end
|
|
117
145
|
end
|
|
118
146
|
|
|
119
|
-
before { @context =
|
|
147
|
+
before { @context = StatusTestCase6.perform }
|
|
120
148
|
|
|
121
149
|
it "@context.status.internal_server_error? should be true" do
|
|
122
150
|
expect(@context.status.internal_server_error?).to be true
|
|
@@ -131,10 +159,7 @@ describe RestMyCase::Status do
|
|
|
131
159
|
end
|
|
132
160
|
|
|
133
161
|
it "context's errors should have a proper message" do
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
expect(@context.errors["TestCase5"]).to eq [message]
|
|
137
|
-
expect(@context.errors.messages).to eq [message]
|
|
162
|
+
expect(@context.errors).to match [a_hash_including({ status: :internal_server_error, message: 'while saving the resource', class_name: "StatusTestCase6" })]
|
|
138
163
|
end
|
|
139
164
|
end
|
|
140
165
|
|
|
@@ -12,7 +12,7 @@ describe RestMyCase::Validator do
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "@context.errors should reflect the fact that no target is defined" do
|
|
15
|
-
expect(@context.errors).to a_hash_including({"
|
|
15
|
+
expect(@context.errors).to a_hash_including({ message: "no target to validate!", class_name: "RestMyCase::Validator" })
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -28,7 +28,7 @@ describe RestMyCase::Validator do
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "@context.errors should include the unprocessable_entity error" do
|
|
31
|
-
expect(@context.errors).to a_hash_including({"
|
|
31
|
+
expect(@context.errors).to a_hash_including({ message: "unprocessable_entity" , class_name: "CustomValidator" })
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
it "@post.errors should mention the bad phone_number error" do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rest_my_case
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.10.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- goncalvesjoao
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-07-
|
|
11
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pry
|