restrack 1.0.0 → 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.
- data/lib/restrack/resource_request.rb +13 -6
- data/lib/restrack/version.rb +1 -1
- data/lib/restrack/web_service.rb +6 -5
- data/test/sample_app_1/config.ru +3 -0
- metadata +4 -2
@@ -11,7 +11,14 @@ module RESTRack
|
|
11
11
|
@request_id = opts[:request_id] || get_request_id
|
12
12
|
# Write input details to logs
|
13
13
|
RESTRack.request_log.info "{#{@request_id}} #{@request.path_info} requested from #{@request.ip}"
|
14
|
-
|
14
|
+
end
|
15
|
+
|
16
|
+
def fulfill
|
17
|
+
self.prepare
|
18
|
+
return self.response
|
19
|
+
end
|
20
|
+
|
21
|
+
def prepare
|
15
22
|
# Pull input data from POST body
|
16
23
|
@input = parse_body( @request )
|
17
24
|
@params = get_params( @request )
|
@@ -42,10 +49,6 @@ module RESTRack
|
|
42
49
|
@active_controller = instantiate_controller( @active_resource_name )
|
43
50
|
end
|
44
51
|
|
45
|
-
def content_type
|
46
|
-
@mime_type.to_s
|
47
|
-
end
|
48
|
-
|
49
52
|
# Send out the typed resource's output, this must occur after a call to run.
|
50
53
|
def response
|
51
54
|
RESTRack.log.debug "{#{@request_id}} Retrieving Output"
|
@@ -60,6 +63,10 @@ module RESTRack
|
|
60
63
|
@active_controller.call
|
61
64
|
end
|
62
65
|
|
66
|
+
def content_type
|
67
|
+
@mime_type.to_s
|
68
|
+
end
|
69
|
+
|
63
70
|
private
|
64
71
|
def get_request_id
|
65
72
|
t = Time.now
|
@@ -79,7 +86,7 @@ module RESTRack
|
|
79
86
|
input = YAML.parse( input )
|
80
87
|
end
|
81
88
|
end
|
82
|
-
RESTRack.
|
89
|
+
RESTRack.log.debug "{#{@request_id}} #{request_mime_type.to_s} data in:\n" + input.pretty_inspect
|
83
90
|
input
|
84
91
|
end
|
85
92
|
|
data/lib/restrack/version.rb
CHANGED
data/lib/restrack/web_service.rb
CHANGED
@@ -14,7 +14,7 @@ module RESTRack
|
|
14
14
|
request = Rack::Request.new(env)
|
15
15
|
begin
|
16
16
|
resource_request = RESTRack::ResourceRequest.new( :request => request )
|
17
|
-
response = resource_request.
|
17
|
+
response = resource_request.fulfill
|
18
18
|
return valid resource_request, response
|
19
19
|
rescue Exception => exception
|
20
20
|
return caught resource_request, exception
|
@@ -25,15 +25,16 @@ module RESTRack
|
|
25
25
|
|
26
26
|
# Return HTTP200OK SUCCESS
|
27
27
|
def valid( resource_request, response )
|
28
|
-
RESTRack.
|
29
|
-
RESTRack.request_log.info "
|
28
|
+
RESTRack.log.debug "(#{resource_request.request_id}) '#{resource_request.mime_type.to_s}' response data:\n" + response.to_s unless not response.respond_to?( :to_s )
|
29
|
+
RESTRack.request_log.info "(#{resource_request.request_id}) HTTP200OK"
|
30
30
|
return [200, {'Content-Type' => resource_request.content_type}, response ]
|
31
31
|
end
|
32
32
|
|
33
33
|
# Return appropriate response code and messages per raised exception type.
|
34
34
|
def caught( resource_request, exception )
|
35
|
+
# This will log the returned status code
|
35
36
|
if resource_request && resource_request.request_id
|
36
|
-
RESTRack.request_log.info
|
37
|
+
RESTRack.request_log.info "(#{resource_request.request_id}) " + exception.message
|
37
38
|
else
|
38
39
|
RESTRack.request_log.info exception.message
|
39
40
|
end
|
@@ -55,7 +56,7 @@ module RESTRack
|
|
55
56
|
else # HTTP500ServerError
|
56
57
|
msg = exception.message + "\n\n" + exception.backtrace.join("\n")
|
57
58
|
if resource_request && resource_request.request_id
|
58
|
-
RESTRack.log.error
|
59
|
+
RESTRack.log.error "(#{resource_request.request_id})" + msg
|
59
60
|
else
|
60
61
|
RESTRack.log.error msg
|
61
62
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: restrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.
|
5
|
+
version: 1.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Chris St. John
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-10 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- lib/restrack/version.rb
|
139
139
|
- lib/restrack/web_service.rb
|
140
140
|
- restrack.gemspec
|
141
|
+
- test/sample_app_1/config.ru
|
141
142
|
- test/sample_app_1/config/constants.yaml
|
142
143
|
- test/sample_app_1/controllers/bat_controller.rb
|
143
144
|
- test/sample_app_1/controllers/bata_controller.rb
|
@@ -211,6 +212,7 @@ signing_key:
|
|
211
212
|
specification_version: 3
|
212
213
|
summary: A lightweight MVC framework developed specifically for JSON (and XML) REST services.
|
213
214
|
test_files:
|
215
|
+
- test/sample_app_1/config.ru
|
214
216
|
- test/sample_app_1/config/constants.yaml
|
215
217
|
- test/sample_app_1/controllers/bat_controller.rb
|
216
218
|
- test/sample_app_1/controllers/bata_controller.rb
|