restrack 1.1.8 → 1.1.9
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.
data/lib/restrack/http_status.rb
CHANGED
data/lib/restrack/version.rb
CHANGED
data/lib/restrack/web_service.rb
CHANGED
|
@@ -50,6 +50,8 @@ module RESTRack
|
|
|
50
50
|
return [409, {'Content-Type' => 'text/plain'}, [exception.message || "The resource you requested is in a conflicted state."] ]
|
|
51
51
|
when exception.is_a?( HTTP410Gone )
|
|
52
52
|
return [410, {'Content-Type' => 'text/plain'}, [exception.message || "The resource you requested is no longer available."] ]
|
|
53
|
+
when exception.is_a?( HTTP422ResourceInvalid )
|
|
54
|
+
return [422, {'Content-Type' => 'text/plain'}, [exception.message || "Invalid attribute values sent for resource."] ]
|
|
53
55
|
else # HTTP500ServerError
|
|
54
56
|
msg = exception.message + "\n\n" + exception.backtrace.join("\n")
|
|
55
57
|
if resource_request && resource_request.request_id
|
|
@@ -39,6 +39,10 @@ class SampleApp::ErrorsController < RESTRack::ResourceController
|
|
|
39
39
|
raise HTTP410Gone, package_error('tester')
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
def resource_invalid
|
|
43
|
+
raise HTTP422ResourceInvalid, package_error({:message => 'This is a WebDAV HTTP extension code used by ActiveResource to communicate validation errors, rather than 400.'})
|
|
44
|
+
end
|
|
45
|
+
|
|
42
46
|
def server_error
|
|
43
47
|
raise HTTP500ServerError, package_error('tester')
|
|
44
48
|
end
|
|
@@ -106,6 +106,19 @@ class SampleApp::TestControllerActions < Test::Unit::TestCase
|
|
|
106
106
|
assert_equal response_code, output[0]
|
|
107
107
|
end
|
|
108
108
|
|
|
109
|
+
def test_resource_invalid
|
|
110
|
+
response_code = 422
|
|
111
|
+
env = Rack::MockRequest.env_for('/errors/resource_invalid', {
|
|
112
|
+
:method => 'GET'
|
|
113
|
+
})
|
|
114
|
+
output = ''
|
|
115
|
+
assert_nothing_raised do
|
|
116
|
+
output = @ws.call(env)
|
|
117
|
+
end
|
|
118
|
+
assert_equal response_code, output[0]
|
|
119
|
+
assert JSON.parse(output[2][0]).has_key?('message')
|
|
120
|
+
end
|
|
121
|
+
|
|
109
122
|
def test_server_error
|
|
110
123
|
response_code = 500
|
|
111
124
|
# This will/should spam the log
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: restrack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.9
|
|
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: 2011-09-
|
|
12
|
+
date: 2011-09-23 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rack
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &10020920 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *10020920
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rack-test
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &10019140 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *10019140
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: i18n
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &10016720 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *10016720
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: json
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &10015080 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *10015080
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: xml-simple
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &10002720 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: 1.0.13
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *10002720
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: builder
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &10001960 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>='
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *10001960
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: activesupport
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &10000880 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ! '>='
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '0'
|
|
88
88
|
type: :runtime
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *10000880
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: mime-types
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &10000240 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,7 +98,7 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :runtime
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *10000240
|
|
102
102
|
description: ! "\nRESTRack is a Rack-based MVC framework that makes it extremely easy
|
|
103
103
|
to develop RESTful data services. It is inspired by\nRails, and follows a few of
|
|
104
104
|
its conventions. But it has no routes file, routing relationships are done through\nsupplying
|