restrack 1.8.1 → 1.8.2
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/async_web_service.rb +20 -6
- data/lib/restrack/resource_request.rb +8 -0
- data/lib/restrack/version.rb +1 -1
- metadata +2 -2
@@ -1,5 +1,19 @@
|
|
1
1
|
require 'eventmachine'
|
2
2
|
|
3
|
+
class DeferrableBody
|
4
|
+
include EventMachine::Deferrable
|
5
|
+
|
6
|
+
def call(body)
|
7
|
+
body.each do |chunk|
|
8
|
+
@body_callback.call(chunk)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def each(&blk)
|
13
|
+
@body_callback = blk
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
3
17
|
module RESTRack
|
4
18
|
class AsyncWebService
|
5
19
|
AsyncResponse = [-1, {}, []].freeze
|
@@ -12,12 +26,12 @@ module RESTRack
|
|
12
26
|
|
13
27
|
# Handle requests in the Rack way.
|
14
28
|
def call( env )
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
29
|
+
resource_request = RESTRack::ResourceRequest.new( :request => Rack::Request.new(env) )
|
30
|
+
unless @request_hook.nil? or (RESTRack::CONFIG.has_key?(:PRE_PROCESSOR_DISABLED) and RESTRack::CONFIG[:PRE_PROCESSOR_DISABLED])
|
31
|
+
@request_hook.pre_processor(resource_request)
|
32
|
+
end
|
33
|
+
response = RESTRack::Response.new(resource_request)
|
34
|
+
unless resource_request.requires_async_defer
|
21
35
|
unless @request_hook.nil? or (RESTRack::CONFIG.has_key?(:POST_PROCESSOR_DISABLED) and RESTRack::CONFIG[:POST_PROCESSOR_DISABLED])
|
22
36
|
@request_hook.post_processor(response)
|
23
37
|
end
|
@@ -87,6 +87,14 @@ module RESTRack
|
|
87
87
|
@mime_type.to_s
|
88
88
|
end
|
89
89
|
|
90
|
+
def requires_async_defer
|
91
|
+
@requires_async_defer ||= RESTRack::CONFIG[:REQUIRES_ASYNC_DEFER] || false
|
92
|
+
end
|
93
|
+
|
94
|
+
def requires_async_defer=(boolean)
|
95
|
+
@require_async_defer = boolean
|
96
|
+
end
|
97
|
+
|
90
98
|
private
|
91
99
|
def get_request_id
|
92
100
|
t = Time.now
|
data/lib/restrack/version.rb
CHANGED
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.8.
|
4
|
+
version: 1.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|