goliath 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of goliath might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/examples/api_proxy.rb +2 -0
- data/examples/around.rb +38 -0
- data/examples/clone.rb +26 -0
- data/examples/router.rb +15 -0
- data/examples/test.rb +31 -0
- data/examples/upload.rb +17 -0
- data/goliath.gemspec +4 -3
- data/lib/goliath/api.rb +5 -2
- data/lib/goliath/connection.rb +1 -1
- data/lib/goliath/rack/params.rb +13 -14
- data/lib/goliath/rack/validation/param.rb +3 -3
- data/lib/goliath/request.rb +11 -11
- data/lib/goliath/server.rb +0 -1
- data/lib/goliath/version.rb +1 -1
- data/spec/integration/http_log_spec.rb +1 -1
- data/spec/integration/websocket_spec.rb +1 -1
- data/spec/unit/connection_spec.rb +7 -7
- data/spec/unit/rack/default_mime_type_spec.rb +3 -3
- data/spec/unit/rack/formatters/json_spec.rb +2 -2
- data/spec/unit/rack/formatters/plist_spec.rb +1 -1
- data/spec/unit/rack/formatters/xml_spec.rb +2 -2
- data/spec/unit/rack/formatters/yaml_spec.rb +2 -2
- data/spec/unit/rack/heartbeat_spec.rb +2 -2
- data/spec/unit/rack/params_spec.rb +8 -1
- data/spec/unit/rack/render_spec.rb +1 -1
- data/spec/unit/rack/validation/boolean_value_spec.rb +2 -2
- data/spec/unit/rack/validation/default_params_spec.rb +1 -1
- data/spec/unit/rack/validation/numeric_range_spec.rb +1 -1
- data/spec/unit/rack/validation/param_spec.rb +4 -4
- data/spec/unit/rack/validation/request_method_spec.rb +4 -4
- data/spec/unit/rack/validation/required_param_spec.rb +3 -3
- data/spec/unit/rack/validation/required_value_spec.rb +1 -1
- data/spec/unit/request_spec.rb +15 -6
- data/spec/unit/runner_spec.rb +14 -14
- data/spec/unit/server_spec.rb +11 -23
- metadata +82 -123
@@ -8,7 +8,7 @@ describe Goliath::Rack::Formatters::YAML do
|
|
8
8
|
|
9
9
|
describe 'with a formatter' do
|
10
10
|
before(:each) do
|
11
|
-
@app =
|
11
|
+
@app = double('app').as_null_object
|
12
12
|
@ym = Goliath::Rack::Formatters::YAML.new(@app)
|
13
13
|
end
|
14
14
|
|
@@ -21,7 +21,7 @@ describe Goliath::Rack::Formatters::YAML do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'calls the app with the provided environment' do
|
24
|
-
env_mock =
|
24
|
+
env_mock = double('env').as_null_object
|
25
25
|
@app.should_receive(:call).with(env_mock).and_return([200, {}, {"a" => 1}])
|
26
26
|
@ym.call(env_mock)
|
27
27
|
end
|
@@ -9,9 +9,9 @@ describe Goliath::Rack::Heartbeat do
|
|
9
9
|
|
10
10
|
describe 'with the middleware' do
|
11
11
|
before(:each) do
|
12
|
-
@app =
|
12
|
+
@app = double('app').as_null_object
|
13
13
|
@env = Goliath::Env.new
|
14
|
-
@env['status'] =
|
14
|
+
@env['status'] = double('status').as_null_object
|
15
15
|
@hb = Goliath::Rack::Heartbeat.new(@app)
|
16
16
|
end
|
17
17
|
|
@@ -8,12 +8,19 @@ describe Goliath::Rack::Params do
|
|
8
8
|
|
9
9
|
describe 'with middleware' do
|
10
10
|
before(:each) do
|
11
|
-
@app =
|
11
|
+
@app = double('app').as_null_object
|
12
12
|
@env = {}
|
13
13
|
@env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=utf-8'
|
14
14
|
@params = Goliath::Rack::Params.new(@app)
|
15
15
|
end
|
16
16
|
|
17
|
+
it 'handles invalid query strings' do
|
18
|
+
@env['QUERY_STRING'] = 'bad=%3N'
|
19
|
+
expect {
|
20
|
+
@params.retrieve_params(@env)
|
21
|
+
}.to raise_error(Goliath::Validation::BadRequestError)
|
22
|
+
end
|
23
|
+
|
17
24
|
it 'parses the query string' do
|
18
25
|
@env['QUERY_STRING'] = 'foo=bar&baz=bonkey'
|
19
26
|
|
@@ -3,7 +3,7 @@ require 'goliath/rack/validation/boolean_value'
|
|
3
3
|
|
4
4
|
describe Goliath::Rack::Validation::BooleanValue do
|
5
5
|
before(:each) do
|
6
|
-
@app =
|
6
|
+
@app = double('app').as_null_object
|
7
7
|
@env = {'params' => {}}
|
8
8
|
end
|
9
9
|
|
@@ -51,4 +51,4 @@ describe Goliath::Rack::Validation::BooleanValue do
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
54
|
-
end
|
54
|
+
end
|
@@ -17,7 +17,7 @@ describe Goliath::Rack::Validation::DefaultParams do
|
|
17
17
|
|
18
18
|
describe 'with middleware' do
|
19
19
|
before(:each) do
|
20
|
-
@app =
|
20
|
+
@app = double('app').as_null_object
|
21
21
|
@env = {'params' => {}}
|
22
22
|
@rf = Goliath::Rack::Validation::DefaultParams.new(@app, {:key => 'fl', :defaults => ['title', 'link']})
|
23
23
|
end
|
@@ -3,7 +3,7 @@ require 'goliath/rack/validation/param'
|
|
3
3
|
|
4
4
|
describe Goliath::Rack::Validation::Param do
|
5
5
|
before do
|
6
|
-
@app =
|
6
|
+
@app = double('app').as_null_object
|
7
7
|
@env = {'params' => {}}
|
8
8
|
end
|
9
9
|
|
@@ -96,7 +96,7 @@ describe Goliath::Rack::Validation::Param do
|
|
96
96
|
|
97
97
|
context 'with middleware' do
|
98
98
|
before(:each) do
|
99
|
-
@app =
|
99
|
+
@app = double('app').as_null_object
|
100
100
|
@env = {'params' => {}}
|
101
101
|
@rp = Goliath::Rack::Validation::Param.new(@app, {:type => 'Monkey',
|
102
102
|
:key => 'mk', :message => 'is required'})
|
@@ -179,7 +179,7 @@ describe Goliath::Rack::Validation::Param do
|
|
179
179
|
|
180
180
|
context 'Nested keys tests' do
|
181
181
|
before do
|
182
|
-
@app =
|
182
|
+
@app = double('app').as_null_object
|
183
183
|
@env = {'params' => {}}
|
184
184
|
@rp = Goliath::Rack::Validation::Param.new(@app, :type => 'Monkey',
|
185
185
|
:key => ['data', 'credentials', 'login'],
|
@@ -211,7 +211,7 @@ describe Goliath::Rack::Validation::Param do
|
|
211
211
|
|
212
212
|
context 'Nested keys tests (with string)' do
|
213
213
|
before do
|
214
|
-
@app =
|
214
|
+
@app = double('app').as_null_object
|
215
215
|
@env = {'params' => {}}
|
216
216
|
@rp = Goliath::Rack::Validation::Param.new(@app, :type => 'Monkey',
|
217
217
|
:key => 'data.credentials.login', :message => 'is required')
|
@@ -6,8 +6,8 @@ describe Goliath::Rack::Validation::RequestMethod do
|
|
6
6
|
@app_headers = {'Content-Type' => 'asdf'}
|
7
7
|
@app_body = {'a' => 'b'}
|
8
8
|
|
9
|
-
@app =
|
10
|
-
@app.stub
|
9
|
+
@app = double('app').as_null_object
|
10
|
+
@app.stub(:call).and_return([200, @app_headers, @app_body])
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'accepts an app' do
|
@@ -44,9 +44,9 @@ describe Goliath::Rack::Validation::RequestMethod do
|
|
44
44
|
rm = Goliath::Rack::Validation::RequestMethod.new('my app', ['GET', 'DELETE', 'HEAD'])
|
45
45
|
rm.methods.should == ['GET', 'DELETE', 'HEAD']
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
it 'accepts string method on initialize' do
|
49
49
|
rm = Goliath::Rack::Validation::RequestMethod.new('my app', 'GET')
|
50
50
|
rm.methods.should == ['GET']
|
51
51
|
end
|
52
|
-
end
|
52
|
+
end
|
@@ -24,7 +24,7 @@ describe Goliath::Rack::Validation::RequiredParam do
|
|
24
24
|
|
25
25
|
describe 'with middleware' do
|
26
26
|
before(:each) do
|
27
|
-
@app =
|
27
|
+
@app = double('app').as_null_object
|
28
28
|
@env = {'params' => {}}
|
29
29
|
@rp = Goliath::Rack::Validation::RequiredParam.new(@app, {:type => 'Monkey', :key => 'mk', :message => 'is required'})
|
30
30
|
end
|
@@ -106,7 +106,7 @@ describe Goliath::Rack::Validation::RequiredParam do
|
|
106
106
|
|
107
107
|
describe 'Nested keys tests' do
|
108
108
|
before do
|
109
|
-
@app =
|
109
|
+
@app = double('app').as_null_object
|
110
110
|
@env = {'params' => {}}
|
111
111
|
@rp = Goliath::Rack::Validation::RequiredParam.new(@app,
|
112
112
|
:type => 'Monkey',
|
@@ -140,7 +140,7 @@ describe Goliath::Rack::Validation::RequiredParam do
|
|
140
140
|
|
141
141
|
describe 'Nested keys tests (with string)' do
|
142
142
|
before do
|
143
|
-
@app =
|
143
|
+
@app = double('app').as_null_object
|
144
144
|
@env = {'params' => {}}
|
145
145
|
@rp = Goliath::Rack::Validation::RequiredParam.new(@app,
|
146
146
|
:type => 'Monkey',
|
@@ -19,7 +19,7 @@ describe Goliath::Rack::Validation::RequiredValue do
|
|
19
19
|
|
20
20
|
describe 'with middleware' do
|
21
21
|
before(:each) do
|
22
|
-
@app =
|
22
|
+
@app = double('app').as_null_object
|
23
23
|
@env = {'params' => {}}
|
24
24
|
@rv = Goliath::Rack::Validation::RequiredValue.new(@app, {:values => ['Monkey', 'frog'], :key => 'mk'})
|
25
25
|
end
|
data/spec/unit/request_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Goliath::Request do
|
4
4
|
before(:each) do
|
5
|
-
app =
|
5
|
+
app = double('app').as_null_object
|
6
6
|
env = Goliath::Env.new
|
7
7
|
|
8
8
|
@r = Goliath::Request.new(app, nil, env)
|
@@ -28,8 +28,8 @@ describe Goliath::Request do
|
|
28
28
|
|
29
29
|
describe 'process' do
|
30
30
|
it 'executes the application' do
|
31
|
-
app_mock =
|
32
|
-
env_mock =
|
31
|
+
app_mock = double('app').as_null_object
|
32
|
+
env_mock = double('app').as_null_object
|
33
33
|
request = Goliath::Request.new(app_mock, nil, env_mock)
|
34
34
|
|
35
35
|
app_mock.should_receive(:call).with(request.env)
|
@@ -54,15 +54,24 @@ describe Goliath::Request do
|
|
54
54
|
|
55
55
|
describe 'parse_headers' do
|
56
56
|
it 'sets content_type correctly' do
|
57
|
-
parser =
|
57
|
+
parser = double('parser').as_null_object
|
58
58
|
parser.stub(:request_url).and_return('')
|
59
59
|
|
60
60
|
@r.parse_header({'Content-Type' => 'text/plain'}, parser)
|
61
61
|
@r.env['CONTENT_TYPE'].should == 'text/plain'
|
62
62
|
end
|
63
63
|
|
64
|
+
it 'handles bad request urls' do
|
65
|
+
parser = double('parser').as_null_object
|
66
|
+
parser.stub(:request_url).and_return('/bad?param}')
|
67
|
+
|
68
|
+
@r.stub(:server_exception)
|
69
|
+
@r.should_receive(:server_exception)
|
70
|
+
@r.parse_header({}, parser)
|
71
|
+
end
|
72
|
+
|
64
73
|
it 'sets content_length correctly' do
|
65
|
-
parser =
|
74
|
+
parser = double('parser').as_null_object
|
66
75
|
parser.stub(:request_url).and_return('')
|
67
76
|
|
68
77
|
@r.parse_header({'Content-Length' => 42}, parser)
|
@@ -70,7 +79,7 @@ describe Goliath::Request do
|
|
70
79
|
end
|
71
80
|
|
72
81
|
it 'sets server_name and server_port correctly' do
|
73
|
-
parser =
|
82
|
+
parser = double('parser').as_null_object
|
74
83
|
parser.stub(:request_url).and_return('')
|
75
84
|
|
76
85
|
@r.parse_header({'Host' => 'myhost.com:3000'}, parser)
|
data/spec/unit/runner_spec.rb
CHANGED
@@ -4,10 +4,10 @@ require 'goliath/runner'
|
|
4
4
|
describe Goliath::Runner do
|
5
5
|
before(:each) do
|
6
6
|
@r = Goliath::Runner.new([], nil)
|
7
|
-
@r.stub
|
7
|
+
@r.stub(:store_pid)
|
8
8
|
|
9
|
-
@log_mock =
|
10
|
-
@r.stub
|
9
|
+
@log_mock = double('logger').as_null_object
|
10
|
+
@r.stub(:setup_logger).and_return(@log_mock)
|
11
11
|
end
|
12
12
|
|
13
13
|
describe 'server execution' do
|
@@ -35,10 +35,10 @@ describe Goliath::Runner do
|
|
35
35
|
# We do need to revert to test
|
36
36
|
Goliath.env = :test
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
describe 'without setting up file logger' do
|
40
40
|
before(:each) do
|
41
|
-
@r.stub
|
41
|
+
@r.stub(:setup_file_logger)
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'configures the logger' do
|
@@ -55,7 +55,7 @@ describe Goliath::Runner do
|
|
55
55
|
|
56
56
|
describe 'log level' do
|
57
57
|
before(:each) do
|
58
|
-
FileUtils.stub
|
58
|
+
FileUtils.stub(:mkdir_p)
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'sets the default log level' do
|
@@ -109,8 +109,8 @@ describe Goliath::Runner do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
it 'creates the log dir if neeed' do
|
112
|
-
Log4r::FileOutputter.stub
|
113
|
-
log_mock =
|
112
|
+
Log4r::FileOutputter.stub(:new)
|
113
|
+
log_mock = double('log').as_null_object
|
114
114
|
|
115
115
|
FileUtils.should_receive(:mkdir_p).with('/my/log/dir')
|
116
116
|
|
@@ -120,28 +120,28 @@ describe Goliath::Runner do
|
|
120
120
|
end
|
121
121
|
|
122
122
|
it 'sets up the api if that implements the #setup method' do
|
123
|
-
server_mock =
|
123
|
+
server_mock = double("Server").as_null_object
|
124
124
|
server_mock.api.should_receive(:setup)
|
125
125
|
|
126
|
-
Goliath::Server.stub
|
126
|
+
Goliath::Server.stub(:new).and_return(server_mock)
|
127
127
|
|
128
|
-
@r.stub
|
128
|
+
@r.stub(:load_config).and_return({})
|
129
129
|
@r.send(:run_server)
|
130
130
|
end
|
131
131
|
|
132
132
|
it 'runs the server' do
|
133
|
-
server_mock =
|
133
|
+
server_mock = double("Server").as_null_object
|
134
134
|
server_mock.should_receive(:start)
|
135
135
|
|
136
136
|
Goliath::Server.should_receive(:new).and_return(server_mock)
|
137
137
|
|
138
|
-
@r.stub
|
138
|
+
@r.stub(:load_config).and_return({})
|
139
139
|
@r.send(:run_server)
|
140
140
|
end
|
141
141
|
|
142
142
|
it 'configures the server' do
|
143
143
|
server_mock = Goliath::Server.new
|
144
|
-
server_mock.stub
|
144
|
+
server_mock.stub(:start)
|
145
145
|
|
146
146
|
@r.app = 'my_app'
|
147
147
|
|
data/spec/unit/server_spec.rb
CHANGED
@@ -24,19 +24,19 @@ describe Goliath::Server do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'accepts a logger' do
|
27
|
-
logger =
|
27
|
+
logger = double('logger')
|
28
28
|
@s.logger = logger
|
29
29
|
@s.logger.should == logger
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'accepts an app' do
|
33
|
-
app =
|
33
|
+
app = double('app')
|
34
34
|
@s.app = app
|
35
35
|
@s.app.should == app
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'accepts config' do
|
39
|
-
config =
|
39
|
+
config = double('config')
|
40
40
|
@s.config = config
|
41
41
|
@s.config.should == config
|
42
42
|
end
|
@@ -59,9 +59,9 @@ describe Goliath::Server do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
it 'provides the app to each connection' do
|
62
|
-
app =
|
62
|
+
app = double('application')
|
63
63
|
|
64
|
-
conn =
|
64
|
+
conn = double("connection").as_null_object
|
65
65
|
conn.should_receive(:app=).with(app)
|
66
66
|
|
67
67
|
EM.should_receive(:start_server).and_yield(conn)
|
@@ -71,9 +71,9 @@ describe Goliath::Server do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'provides the logger to each connection' do
|
74
|
-
logger =
|
74
|
+
logger = double('logger')
|
75
75
|
|
76
|
-
conn =
|
76
|
+
conn = double("connection").as_null_object
|
77
77
|
conn.should_receive(:logger=).with(logger)
|
78
78
|
|
79
79
|
EM.should_receive(:start_server).and_yield(conn)
|
@@ -83,9 +83,9 @@ describe Goliath::Server do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'provides the status object to each connection' do
|
86
|
-
status =
|
86
|
+
status = double('status')
|
87
87
|
|
88
|
-
conn =
|
88
|
+
conn = double("connection").as_null_object
|
89
89
|
conn.should_receive(:status=).with(status)
|
90
90
|
|
91
91
|
EM.should_receive(:start_server).and_yield(conn)
|
@@ -95,7 +95,7 @@ describe Goliath::Server do
|
|
95
95
|
end
|
96
96
|
|
97
97
|
it 'loads the config for each connection' do
|
98
|
-
conn =
|
98
|
+
conn = double("connection").as_null_object
|
99
99
|
EM.should_receive(:start_server).and_yield(conn)
|
100
100
|
|
101
101
|
@s.should_receive(:load_config)
|
@@ -103,23 +103,11 @@ describe Goliath::Server do
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
-
describe 'stop' do
|
107
|
-
it 'logs when receives TERM signal' do
|
108
|
-
EM.run do
|
109
|
-
logger = mock('logger')
|
110
|
-
logger.should_receive(:info).with('Stopping server...')
|
111
|
-
@s.logger = logger
|
112
|
-
@s.start
|
113
|
-
@s.stop
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
106
|
context 'config parsing' do
|
119
107
|
context 'environment' do
|
120
108
|
after(:all) do
|
121
109
|
# Be sure to revert to correct env
|
122
|
-
Goliath.env = :test
|
110
|
+
Goliath.env = :test
|
123
111
|
end
|
124
112
|
it 'executes the block if the environment matches the provided string' do
|
125
113
|
Goliath.env = :development
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goliath
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- dan sinclair
|
@@ -10,44 +9,39 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-06-22 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: eventmachine
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: 1.0.0.beta.4
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: 1.0.0.beta.4
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: em-synchrony
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: 1.0.0
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: 1.0.0
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: em-websocket
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - '='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - '='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,183 +56,160 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: http_parser.rb
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - '='
|
69
61
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.6.0
|
62
|
+
version: 0.6.0
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - '='
|
77
68
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.6.0
|
69
|
+
version: 0.6.0
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: log4r
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - '>='
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - '>='
|
93
82
|
- !ruby/object:Gem::Version
|
94
83
|
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: rack
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
|
-
- -
|
88
|
+
- - '>='
|
101
89
|
- !ruby/object:Gem::Version
|
102
90
|
version: 1.2.2
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
|
-
- -
|
95
|
+
- - '>='
|
109
96
|
- !ruby/object:Gem::Version
|
110
97
|
version: 1.2.2
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rack-contrib
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - '>='
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - '>='
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: rack-respond_to
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
|
-
- -
|
116
|
+
- - '>='
|
133
117
|
- !ruby/object:Gem::Version
|
134
118
|
version: '0'
|
135
119
|
type: :runtime
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
|
-
- -
|
123
|
+
- - '>='
|
141
124
|
- !ruby/object:Gem::Version
|
142
125
|
version: '0'
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: async-rack
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
|
-
- -
|
130
|
+
- - '>='
|
149
131
|
- !ruby/object:Gem::Version
|
150
132
|
version: '0'
|
151
133
|
type: :runtime
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
|
-
- -
|
137
|
+
- - '>='
|
157
138
|
- !ruby/object:Gem::Version
|
158
139
|
version: '0'
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: multi_json
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
|
-
- -
|
144
|
+
- - '>='
|
165
145
|
- !ruby/object:Gem::Version
|
166
146
|
version: '0'
|
167
147
|
type: :runtime
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
|
-
- -
|
151
|
+
- - '>='
|
173
152
|
- !ruby/object:Gem::Version
|
174
153
|
version: '0'
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: rake
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
|
-
- -
|
158
|
+
- - '>='
|
181
159
|
- !ruby/object:Gem::Version
|
182
160
|
version: 0.8.7
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
|
-
- -
|
165
|
+
- - '>='
|
189
166
|
- !ruby/object:Gem::Version
|
190
167
|
version: 0.8.7
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: rspec
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
|
-
- -
|
172
|
+
- - '>'
|
197
173
|
- !ruby/object:Gem::Version
|
198
174
|
version: '2.0'
|
199
175
|
type: :development
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
|
-
- -
|
179
|
+
- - '>'
|
205
180
|
- !ruby/object:Gem::Version
|
206
181
|
version: '2.0'
|
207
182
|
- !ruby/object:Gem::Dependency
|
208
183
|
name: nokogiri
|
209
184
|
requirement: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
185
|
requirements:
|
212
|
-
- -
|
186
|
+
- - '>='
|
213
187
|
- !ruby/object:Gem::Version
|
214
188
|
version: '0'
|
215
189
|
type: :development
|
216
190
|
prerelease: false
|
217
191
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
-
none: false
|
219
192
|
requirements:
|
220
|
-
- -
|
193
|
+
- - '>='
|
221
194
|
- !ruby/object:Gem::Version
|
222
195
|
version: '0'
|
223
196
|
- !ruby/object:Gem::Dependency
|
224
197
|
name: em-http-request
|
225
198
|
requirement: !ruby/object:Gem::Requirement
|
226
|
-
none: false
|
227
199
|
requirements:
|
228
|
-
- -
|
200
|
+
- - '>='
|
229
201
|
- !ruby/object:Gem::Version
|
230
202
|
version: 1.0.0
|
231
203
|
type: :development
|
232
204
|
prerelease: false
|
233
205
|
version_requirements: !ruby/object:Gem::Requirement
|
234
|
-
none: false
|
235
206
|
requirements:
|
236
|
-
- -
|
207
|
+
- - '>='
|
237
208
|
- !ruby/object:Gem::Version
|
238
209
|
version: 1.0.0
|
239
210
|
- !ruby/object:Gem::Dependency
|
240
211
|
name: em-mongo
|
241
212
|
requirement: !ruby/object:Gem::Requirement
|
242
|
-
none: false
|
243
213
|
requirements:
|
244
214
|
- - ~>
|
245
215
|
- !ruby/object:Gem::Version
|
@@ -247,7 +217,6 @@ dependencies:
|
|
247
217
|
type: :development
|
248
218
|
prerelease: false
|
249
219
|
version_requirements: !ruby/object:Gem::Requirement
|
250
|
-
none: false
|
251
220
|
requirements:
|
252
221
|
- - ~>
|
253
222
|
- !ruby/object:Gem::Version
|
@@ -255,199 +224,188 @@ dependencies:
|
|
255
224
|
- !ruby/object:Gem::Dependency
|
256
225
|
name: rack-rewrite
|
257
226
|
requirement: !ruby/object:Gem::Requirement
|
258
|
-
none: false
|
259
227
|
requirements:
|
260
|
-
- -
|
228
|
+
- - '>='
|
261
229
|
- !ruby/object:Gem::Version
|
262
230
|
version: '0'
|
263
231
|
type: :development
|
264
232
|
prerelease: false
|
265
233
|
version_requirements: !ruby/object:Gem::Requirement
|
266
|
-
none: false
|
267
234
|
requirements:
|
268
|
-
- -
|
235
|
+
- - '>='
|
269
236
|
- !ruby/object:Gem::Version
|
270
237
|
version: '0'
|
271
238
|
- !ruby/object:Gem::Dependency
|
272
239
|
name: multipart_body
|
273
240
|
requirement: !ruby/object:Gem::Requirement
|
274
|
-
none: false
|
275
241
|
requirements:
|
276
|
-
- -
|
242
|
+
- - '>='
|
277
243
|
- !ruby/object:Gem::Version
|
278
244
|
version: '0'
|
279
245
|
type: :development
|
280
246
|
prerelease: false
|
281
247
|
version_requirements: !ruby/object:Gem::Requirement
|
282
|
-
none: false
|
283
248
|
requirements:
|
284
|
-
- -
|
249
|
+
- - '>='
|
285
250
|
- !ruby/object:Gem::Version
|
286
251
|
version: '0'
|
287
252
|
- !ruby/object:Gem::Dependency
|
288
253
|
name: amqp
|
289
254
|
requirement: !ruby/object:Gem::Requirement
|
290
|
-
none: false
|
291
255
|
requirements:
|
292
|
-
- -
|
256
|
+
- - '>='
|
293
257
|
- !ruby/object:Gem::Version
|
294
258
|
version: 0.7.1
|
295
259
|
type: :development
|
296
260
|
prerelease: false
|
297
261
|
version_requirements: !ruby/object:Gem::Requirement
|
298
|
-
none: false
|
299
262
|
requirements:
|
300
|
-
- -
|
263
|
+
- - '>='
|
301
264
|
- !ruby/object:Gem::Version
|
302
265
|
version: 0.7.1
|
303
266
|
- !ruby/object:Gem::Dependency
|
304
267
|
name: em-websocket-client
|
305
268
|
requirement: !ruby/object:Gem::Requirement
|
306
|
-
none: false
|
307
269
|
requirements:
|
308
|
-
- -
|
270
|
+
- - '>='
|
309
271
|
- !ruby/object:Gem::Version
|
310
272
|
version: '0'
|
311
273
|
type: :development
|
312
274
|
prerelease: false
|
313
275
|
version_requirements: !ruby/object:Gem::Requirement
|
314
|
-
none: false
|
315
276
|
requirements:
|
316
|
-
- -
|
277
|
+
- - '>='
|
317
278
|
- !ruby/object:Gem::Version
|
318
279
|
version: '0'
|
319
280
|
- !ruby/object:Gem::Dependency
|
320
281
|
name: tilt
|
321
282
|
requirement: !ruby/object:Gem::Requirement
|
322
|
-
none: false
|
323
283
|
requirements:
|
324
|
-
- -
|
284
|
+
- - '>='
|
325
285
|
- !ruby/object:Gem::Version
|
326
286
|
version: 1.2.2
|
327
287
|
type: :development
|
328
288
|
prerelease: false
|
329
289
|
version_requirements: !ruby/object:Gem::Requirement
|
330
|
-
none: false
|
331
290
|
requirements:
|
332
|
-
- -
|
291
|
+
- - '>='
|
333
292
|
- !ruby/object:Gem::Version
|
334
293
|
version: 1.2.2
|
335
294
|
- !ruby/object:Gem::Dependency
|
336
295
|
name: haml
|
337
296
|
requirement: !ruby/object:Gem::Requirement
|
338
|
-
none: false
|
339
297
|
requirements:
|
340
|
-
- -
|
298
|
+
- - '>='
|
341
299
|
- !ruby/object:Gem::Version
|
342
300
|
version: 3.0.25
|
343
301
|
type: :development
|
344
302
|
prerelease: false
|
345
303
|
version_requirements: !ruby/object:Gem::Requirement
|
346
|
-
none: false
|
347
304
|
requirements:
|
348
|
-
- -
|
305
|
+
- - '>='
|
349
306
|
- !ruby/object:Gem::Version
|
350
307
|
version: 3.0.25
|
351
308
|
- !ruby/object:Gem::Dependency
|
352
309
|
name: yard
|
353
310
|
requirement: !ruby/object:Gem::Requirement
|
354
|
-
none: false
|
355
311
|
requirements:
|
356
|
-
- -
|
312
|
+
- - '>='
|
357
313
|
- !ruby/object:Gem::Version
|
358
314
|
version: '0'
|
359
315
|
type: :development
|
360
316
|
prerelease: false
|
361
317
|
version_requirements: !ruby/object:Gem::Requirement
|
362
|
-
none: false
|
363
318
|
requirements:
|
364
|
-
- -
|
319
|
+
- - '>='
|
365
320
|
- !ruby/object:Gem::Version
|
366
321
|
version: '0'
|
367
322
|
- !ruby/object:Gem::Dependency
|
368
323
|
name: guard
|
369
324
|
requirement: !ruby/object:Gem::Requirement
|
370
|
-
none: false
|
371
325
|
requirements:
|
372
|
-
- -
|
326
|
+
- - ~>
|
373
327
|
- !ruby/object:Gem::Version
|
374
|
-
version:
|
328
|
+
version: 1.8.3
|
375
329
|
type: :development
|
376
330
|
prerelease: false
|
377
331
|
version_requirements: !ruby/object:Gem::Requirement
|
378
|
-
none: false
|
379
332
|
requirements:
|
380
|
-
- -
|
333
|
+
- - ~>
|
381
334
|
- !ruby/object:Gem::Version
|
382
|
-
version:
|
335
|
+
version: 1.8.3
|
383
336
|
- !ruby/object:Gem::Dependency
|
384
337
|
name: guard-rspec
|
385
338
|
requirement: !ruby/object:Gem::Requirement
|
386
|
-
none: false
|
387
339
|
requirements:
|
388
|
-
- -
|
340
|
+
- - ~>
|
389
341
|
- !ruby/object:Gem::Version
|
390
|
-
version:
|
342
|
+
version: 3.1.0
|
391
343
|
type: :development
|
392
344
|
prerelease: false
|
393
345
|
version_requirements: !ruby/object:Gem::Requirement
|
394
|
-
none: false
|
395
346
|
requirements:
|
396
|
-
- -
|
347
|
+
- - ~>
|
397
348
|
- !ruby/object:Gem::Version
|
398
|
-
version:
|
349
|
+
version: 3.1.0
|
350
|
+
- !ruby/object:Gem::Dependency
|
351
|
+
name: listen
|
352
|
+
requirement: !ruby/object:Gem::Requirement
|
353
|
+
requirements:
|
354
|
+
- - ~>
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: 1.3.1
|
357
|
+
type: :development
|
358
|
+
prerelease: false
|
359
|
+
version_requirements: !ruby/object:Gem::Requirement
|
360
|
+
requirements:
|
361
|
+
- - ~>
|
362
|
+
- !ruby/object:Gem::Version
|
363
|
+
version: 1.3.1
|
399
364
|
- !ruby/object:Gem::Dependency
|
400
365
|
name: yajl-ruby
|
401
366
|
requirement: !ruby/object:Gem::Requirement
|
402
|
-
none: false
|
403
367
|
requirements:
|
404
|
-
- -
|
368
|
+
- - '>='
|
405
369
|
- !ruby/object:Gem::Version
|
406
370
|
version: '0'
|
407
371
|
type: :development
|
408
372
|
prerelease: false
|
409
373
|
version_requirements: !ruby/object:Gem::Requirement
|
410
|
-
none: false
|
411
374
|
requirements:
|
412
|
-
- -
|
375
|
+
- - '>='
|
413
376
|
- !ruby/object:Gem::Version
|
414
377
|
version: '0'
|
415
378
|
- !ruby/object:Gem::Dependency
|
416
379
|
name: bluecloth
|
417
380
|
requirement: !ruby/object:Gem::Requirement
|
418
|
-
none: false
|
419
381
|
requirements:
|
420
|
-
- -
|
382
|
+
- - '>='
|
421
383
|
- !ruby/object:Gem::Version
|
422
384
|
version: '0'
|
423
385
|
type: :development
|
424
386
|
prerelease: false
|
425
387
|
version_requirements: !ruby/object:Gem::Requirement
|
426
|
-
none: false
|
427
388
|
requirements:
|
428
|
-
- -
|
389
|
+
- - '>='
|
429
390
|
- !ruby/object:Gem::Version
|
430
391
|
version: '0'
|
431
392
|
- !ruby/object:Gem::Dependency
|
432
393
|
name: bson_ext
|
433
394
|
requirement: !ruby/object:Gem::Requirement
|
434
|
-
none: false
|
435
395
|
requirements:
|
436
|
-
- -
|
396
|
+
- - '>='
|
437
397
|
- !ruby/object:Gem::Version
|
438
398
|
version: '0'
|
439
399
|
type: :development
|
440
400
|
prerelease: false
|
441
401
|
version_requirements: !ruby/object:Gem::Requirement
|
442
|
-
none: false
|
443
402
|
requirements:
|
444
|
-
- -
|
403
|
+
- - '>='
|
445
404
|
- !ruby/object:Gem::Version
|
446
405
|
version: '0'
|
447
406
|
- !ruby/object:Gem::Dependency
|
448
407
|
name: growl
|
449
408
|
requirement: !ruby/object:Gem::Requirement
|
450
|
-
none: false
|
451
409
|
requirements:
|
452
410
|
- - ~>
|
453
411
|
- !ruby/object:Gem::Version
|
@@ -455,7 +413,6 @@ dependencies:
|
|
455
413
|
type: :development
|
456
414
|
prerelease: false
|
457
415
|
version_requirements: !ruby/object:Gem::Requirement
|
458
|
-
none: false
|
459
416
|
requirements:
|
460
417
|
- - ~>
|
461
418
|
- !ruby/object:Gem::Version
|
@@ -463,17 +420,15 @@ dependencies:
|
|
463
420
|
- !ruby/object:Gem::Dependency
|
464
421
|
name: rb-fsevent
|
465
422
|
requirement: !ruby/object:Gem::Requirement
|
466
|
-
none: false
|
467
423
|
requirements:
|
468
|
-
- -
|
424
|
+
- - '>='
|
469
425
|
- !ruby/object:Gem::Version
|
470
426
|
version: '0'
|
471
427
|
type: :development
|
472
428
|
prerelease: false
|
473
429
|
version_requirements: !ruby/object:Gem::Requirement
|
474
|
-
none: false
|
475
430
|
requirements:
|
476
|
-
- -
|
431
|
+
- - '>='
|
477
432
|
- !ruby/object:Gem::Version
|
478
433
|
version: '0'
|
479
434
|
description: Async framework for writing API servers
|
@@ -487,10 +442,12 @@ files:
|
|
487
442
|
- examples/activerecord/config/srv.rb
|
488
443
|
- examples/activerecord/srv.rb
|
489
444
|
- examples/api_proxy.rb
|
445
|
+
- examples/around.rb
|
490
446
|
- examples/async_aroundware_demo.rb
|
491
447
|
- examples/async_upload.rb
|
492
448
|
- examples/auth_and_rate_limit.rb
|
493
449
|
- examples/chunked_streaming.rb
|
450
|
+
- examples/clone.rb
|
494
451
|
- examples/conf_test.rb
|
495
452
|
- examples/config/auth_and_rate_limit.rb
|
496
453
|
- examples/config/conf_test.rb
|
@@ -517,9 +474,12 @@ files:
|
|
517
474
|
- examples/rasterize/rasterize.js
|
518
475
|
- examples/rasterize/rasterize.rb
|
519
476
|
- examples/rasterize/rasterize_and_shorten.rb
|
477
|
+
- examples/router.rb
|
520
478
|
- examples/stream.rb
|
521
479
|
- examples/template.rb
|
480
|
+
- examples/test.rb
|
522
481
|
- examples/test_rig.rb
|
482
|
+
- examples/upload.rb
|
523
483
|
- examples/views/debug.haml
|
524
484
|
- examples/views/joke.markdown
|
525
485
|
- examples/views/layout.erb
|
@@ -645,27 +605,26 @@ files:
|
|
645
605
|
- .yardopts
|
646
606
|
homepage: http://goliath.io/
|
647
607
|
licenses: []
|
608
|
+
metadata: {}
|
648
609
|
post_install_message:
|
649
610
|
rdoc_options: []
|
650
611
|
require_paths:
|
651
612
|
- lib
|
652
613
|
required_ruby_version: !ruby/object:Gem::Requirement
|
653
|
-
none: false
|
654
614
|
requirements:
|
655
|
-
- -
|
615
|
+
- - '>='
|
656
616
|
- !ruby/object:Gem::Version
|
657
617
|
version: 1.9.2
|
658
618
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
659
|
-
none: false
|
660
619
|
requirements:
|
661
|
-
- -
|
620
|
+
- - '>='
|
662
621
|
- !ruby/object:Gem::Version
|
663
622
|
version: '0'
|
664
623
|
requirements: []
|
665
624
|
rubyforge_project:
|
666
|
-
rubygems_version:
|
625
|
+
rubygems_version: 2.0.6
|
667
626
|
signing_key:
|
668
|
-
specification_version:
|
627
|
+
specification_version: 4
|
669
628
|
summary: Async framework for writing API servers
|
670
629
|
test_files:
|
671
630
|
- spec/integration/async_request_processing.rb
|