carnivore-http 0.3.2 → 0.3.4
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/CHANGELOG.md +3 -0
- data/lib/carnivore-http/app.rb +14 -6
- data/lib/carnivore-http/version.rb +1 -1
- 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: 63346b352c23c47ec4008d4bb130eba33a7e745c
|
|
4
|
+
data.tar.gz: bf2331cfbc3ac0fd9b6035ae7179d6667cb06882
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cfed096ff158d9e4ef0b421ec915d9b50c330ff5e6560f5ab3dd0d55b6169813e15382e5d4a545ccbbdb8e53ace9b494705813f2be4a322b3036e34687043f8e
|
|
7
|
+
data.tar.gz: ad369a4c9638d35d9e875352ac9db2ae522d1b7cc37e3b96fe0e487a08951268c5579b6edd572c7c65bb48adee1c43a2348e5aa1084c508d94ef63b3fb7d970c
|
data/CHANGELOG.md
CHANGED
data/lib/carnivore-http/app.rb
CHANGED
|
@@ -117,12 +117,19 @@ module Carnivore
|
|
|
117
117
|
# Customized request
|
|
118
118
|
class Request < Rack::Request
|
|
119
119
|
|
|
120
|
-
include Zoidberg::SoftShell
|
|
121
|
-
|
|
122
|
-
option :cache_signals
|
|
123
|
-
|
|
124
120
|
# @return [Response]
|
|
125
121
|
attr_reader :response_value
|
|
122
|
+
# @return [Mutex]
|
|
123
|
+
attr_reader :locker
|
|
124
|
+
# @return [ConditionVariable]
|
|
125
|
+
attr_reader :responder
|
|
126
|
+
|
|
127
|
+
# Override to setup synchronization support
|
|
128
|
+
def initialize(*_)
|
|
129
|
+
super
|
|
130
|
+
@locker = Mutex.new
|
|
131
|
+
@responder = ConditionVariable.new
|
|
132
|
+
end
|
|
126
133
|
|
|
127
134
|
# Respond to the request
|
|
128
135
|
#
|
|
@@ -131,7 +138,8 @@ module Carnivore
|
|
|
131
138
|
# @return [TrueClass, FalseClass]
|
|
132
139
|
def respond(code, string_or_args='')
|
|
133
140
|
unless(@response_value)
|
|
134
|
-
|
|
141
|
+
@response_value = Response.new(code, string_or_args)
|
|
142
|
+
locker.synchronize{ responder.signal }
|
|
135
143
|
else
|
|
136
144
|
raise 'Response was already set!'
|
|
137
145
|
end
|
|
@@ -145,7 +153,7 @@ module Carnivore
|
|
|
145
153
|
unless(@response_value)
|
|
146
154
|
begin
|
|
147
155
|
Timeout.timeout(timeout) do
|
|
148
|
-
|
|
156
|
+
locker.synchronize{ responder.wait(locker) }
|
|
149
157
|
end
|
|
150
158
|
rescue Timeout::Error
|
|
151
159
|
@response_value = Response.new(:internal_server_error, 'Timeout waiting for response')
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: carnivore-http
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Roberts
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-10-
|
|
11
|
+
date: 2015-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: carnivore
|