optimus_prime 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -1
- data/lib/optimus_prime.rb +9 -4
- data/lib/optimus_prime/server.rb +7 -7
- data/lib/optimus_prime/version.rb +1 -1
- data/optimus_prime.log +427 -0
- data/spec/lib/optimus_prime_spec.rb +18 -24
- data/spec/lib/start_stop_spec.rb +15 -0
- data/spec/spec_helper.rb +1 -0
- 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: 5af64dcf1d97cc72f361c73e99d6ca751cada381
|
4
|
+
data.tar.gz: df394a539bce898a440faeba0fd8cad99578580a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa7e5241638d58b0587b4d357bcf3154cc18344bf02f3ccb88ef0a43c7c7bf56a21802fdf30333cbd98f56eab55e1f71ea892be693f5e303defa4c4147ea81b7
|
7
|
+
data.tar.gz: 18b6aaf213bc6faf2c8c1c806d63bec0844ea8d80c3c0e23a8bca0eb863fcf1c0be69ea426ad97a0514b9104857fcd07b26bf1cf503c6dedcd76ec0ba4b88374
|
data/README.md
CHANGED
@@ -22,7 +22,8 @@ OptimusPrime allows developers to persist fake date and tell their API to talk
|
|
22
22
|
to it and get the desired response.
|
23
23
|
|
24
24
|
## Default configuration
|
25
|
-
* localhost:7002
|
25
|
+
* localhost:7002 -> default endpoint
|
26
|
+
* localhost:7003 -> TEST default endpoint
|
26
27
|
* returns 200 status code for GET,POST
|
27
28
|
* sets content-type to text
|
28
29
|
|
@@ -37,6 +38,13 @@ op = OptimusPrime::Base.new
|
|
37
38
|
op.prime("path_name", response, options)
|
38
39
|
```
|
39
40
|
|
41
|
+
changing port number:
|
42
|
+
```ruby
|
43
|
+
OptimusPrime.start_server(port: 9292)
|
44
|
+
op = OptimusPrime::Base.new
|
45
|
+
op.prime("path_name", response, options)
|
46
|
+
```
|
47
|
+
|
40
48
|
## GET requests:
|
41
49
|
```ruby
|
42
50
|
op.prime("users", " response... ", status_code: 200)
|
data/lib/optimus_prime.rb
CHANGED
@@ -3,16 +3,21 @@ require "optimus_prime/server"
|
|
3
3
|
|
4
4
|
module OptimusPrime
|
5
5
|
|
6
|
+
@@op_port = 7002
|
7
|
+
def self.op_port; @@op_port; end
|
8
|
+
|
6
9
|
def self.restart_server
|
7
10
|
self.stop_server
|
8
11
|
self.start_server
|
9
12
|
end
|
10
13
|
|
11
|
-
def self.start_server
|
14
|
+
def self.start_server(options={})
|
15
|
+
@@op_port = ENV["OP.ENV"] == "test" ? 7003 : options[:port]
|
16
|
+
|
12
17
|
`mkdir -p ./tmp/pids`
|
13
18
|
return `echo 'Optimus is already priming :)'` if system("ls ./tmp/pids/optimus_prime.pid")
|
14
19
|
path = `pwd`.chomp
|
15
|
-
if system("cd #{optimus_prime_path} && echo '\nStarting Optimus Prime\n' && thin start -p
|
20
|
+
if system("cd #{optimus_prime_path} && echo '\nStarting Optimus Prime\n' && thin start -p #{op_port} -P #{path}/tmp/pids/optimus_prime.pid -l #{path}/optimus_prime.log -d -D")
|
16
21
|
while :starting_server
|
17
22
|
sleep(2) and break if `ls ./tmp/pids`.include?("optimus_prime.pid")
|
18
23
|
end
|
@@ -37,11 +42,11 @@ module OptimusPrime
|
|
37
42
|
class Base
|
38
43
|
|
39
44
|
def prime(path_name, response="", options={})
|
40
|
-
::Faraday.post("http://localhost
|
45
|
+
::Faraday.post("http://localhost:#{OptimusPrime.op_port}/prime", { path_name: path_name, response: response }.merge!(options))
|
41
46
|
end
|
42
47
|
|
43
48
|
def clear!
|
44
|
-
::Faraday.get("http://localhost
|
49
|
+
::Faraday.get("http://localhost:#{OptimusPrime.op_port}/clear")
|
45
50
|
end
|
46
51
|
|
47
52
|
end
|
data/lib/optimus_prime/server.rb
CHANGED
@@ -9,8 +9,9 @@ module OptimusPrime
|
|
9
9
|
set :public_folder, __dir__ + "/server/public"
|
10
10
|
|
11
11
|
put "/get/*" do
|
12
|
-
path =
|
12
|
+
path = get_path
|
13
13
|
response = responses[path]
|
14
|
+
|
14
15
|
return 404 if response.nil?
|
15
16
|
|
16
17
|
if response[:requested_with]
|
@@ -28,7 +29,7 @@ module OptimusPrime
|
|
28
29
|
end
|
29
30
|
|
30
31
|
post "/get/*" do
|
31
|
-
path =
|
32
|
+
path = get_path
|
32
33
|
response = responses[path]
|
33
34
|
return 404 if response.nil?
|
34
35
|
|
@@ -48,14 +49,13 @@ module OptimusPrime
|
|
48
49
|
response[:body]
|
49
50
|
end
|
50
51
|
|
51
|
-
def
|
52
|
-
|
53
|
-
responses[path]
|
52
|
+
def get_path
|
53
|
+
self.env["REQUEST_URI"].scan(/^\/get\/([\/\w+]+)(\/|\?|$)/).flatten[0]
|
54
54
|
end
|
55
55
|
|
56
56
|
get "/get/*" do
|
57
|
-
|
58
|
-
response =
|
57
|
+
path = get_path
|
58
|
+
response = responses[path]
|
59
59
|
return 404 if response.nil?
|
60
60
|
sleep(response[:sleep].to_f) if response[:sleep]
|
61
61
|
|
data/optimus_prime.log
CHANGED
@@ -2328,3 +2328,430 @@ Thin web server (v1.6.2 codename Doc Brown)
|
|
2328
2328
|
Debugging ON
|
2329
2329
|
Maximum connections set to 1024
|
2330
2330
|
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2331
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2332
|
+
Using rack adapter
|
2333
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2334
|
+
Debugging ON
|
2335
|
+
Maximum connections set to 1024
|
2336
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2337
|
+
Exiting!
|
2338
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2339
|
+
Using rack adapter
|
2340
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2341
|
+
Debugging ON
|
2342
|
+
Maximum connections set to 1024
|
2343
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2344
|
+
Exiting!
|
2345
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2346
|
+
Using rack adapter
|
2347
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2348
|
+
Debugging ON
|
2349
|
+
Maximum connections set to 1024
|
2350
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2351
|
+
Exiting!
|
2352
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2353
|
+
Using rack adapter
|
2354
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2355
|
+
Debugging ON
|
2356
|
+
Maximum connections set to 1024
|
2357
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2358
|
+
Exiting!
|
2359
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2360
|
+
Using rack adapter
|
2361
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2362
|
+
Debugging ON
|
2363
|
+
Maximum connections set to 1024
|
2364
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2365
|
+
Exiting!
|
2366
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2367
|
+
Using rack adapter
|
2368
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2369
|
+
Debugging ON
|
2370
|
+
Maximum connections set to 1024
|
2371
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2372
|
+
Exiting!
|
2373
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2374
|
+
Using rack adapter
|
2375
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2376
|
+
Debugging ON
|
2377
|
+
Maximum connections set to 1024
|
2378
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2379
|
+
Exiting!
|
2380
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2381
|
+
Using rack adapter
|
2382
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2383
|
+
Debugging ON
|
2384
|
+
Maximum connections set to 1024
|
2385
|
+
Listening on 0.0.0.0:7002, CTRL+C to stop
|
2386
|
+
Exiting!
|
2387
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2388
|
+
Using rack adapter
|
2389
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2390
|
+
Debugging ON
|
2391
|
+
Maximum connections set to 1024
|
2392
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2393
|
+
Exiting!
|
2394
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2395
|
+
Using rack adapter
|
2396
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2397
|
+
Debugging ON
|
2398
|
+
Maximum connections set to 1024
|
2399
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2400
|
+
Exiting!
|
2401
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2402
|
+
Using rack adapter
|
2403
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2404
|
+
Debugging ON
|
2405
|
+
Maximum connections set to 1024
|
2406
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2407
|
+
Exiting!
|
2408
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2409
|
+
Using rack adapter
|
2410
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2411
|
+
Debugging ON
|
2412
|
+
Maximum connections set to 1024
|
2413
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2414
|
+
Exiting!
|
2415
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2416
|
+
Using rack adapter
|
2417
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2418
|
+
Debugging ON
|
2419
|
+
Maximum connections set to 1024
|
2420
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2421
|
+
Exiting!
|
2422
|
+
Writing PID to /Users/acnalesso/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2423
|
+
Using rack adapter
|
2424
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2425
|
+
Debugging ON
|
2426
|
+
Maximum connections set to 1024
|
2427
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2428
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2429
|
+
Using rack adapter
|
2430
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2431
|
+
Debugging ON
|
2432
|
+
Maximum connections set to 1024
|
2433
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2434
|
+
Exiting!
|
2435
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2436
|
+
Using rack adapter
|
2437
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2438
|
+
Debugging ON
|
2439
|
+
Maximum connections set to 1024
|
2440
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2441
|
+
RuntimeError - user:
|
2442
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:55:in `get_response'
|
2443
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:32:in `block in <class:Server>'
|
2444
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
|
2445
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
|
2446
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
|
2447
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
|
2448
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
|
2449
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
|
2450
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
|
2451
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
|
2452
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
|
2453
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
|
2454
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
|
2455
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
|
2456
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
|
2457
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2458
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2459
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2460
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
|
2461
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
|
2462
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2463
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2464
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2465
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
|
2466
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
|
2467
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
|
2468
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
|
2469
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
|
2470
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2471
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2472
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
|
2473
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'
|
2474
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
|
2475
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
|
2476
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
|
2477
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
|
2478
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
|
2479
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
|
2480
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
|
2481
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:86:in `block in pre_process'
|
2482
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `catch'
|
2483
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `pre_process'
|
2484
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:53:in `process'
|
2485
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:39:in `receive_data'
|
2486
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
2487
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
2488
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
2489
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
2490
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
2491
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
2492
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
2493
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
2494
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `load'
|
2495
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `<main>'
|
2496
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
|
2497
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
|
2498
|
+
Waiting for 1 connection(s) to finish, can take up to 30 sec, CTRL+C to stop now
|
2499
|
+
Exiting!
|
2500
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2501
|
+
Using rack adapter
|
2502
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2503
|
+
Debugging ON
|
2504
|
+
Maximum connections set to 1024
|
2505
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2506
|
+
RuntimeError - :
|
2507
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:34:in `block in <class:Server>'
|
2508
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
|
2509
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
|
2510
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
|
2511
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
|
2512
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
|
2513
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
|
2514
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
|
2515
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
|
2516
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
|
2517
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
|
2518
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
|
2519
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
|
2520
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
|
2521
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2522
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2523
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2524
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
|
2525
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
|
2526
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2527
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2528
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2529
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
|
2530
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
|
2531
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
|
2532
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
|
2533
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
|
2534
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2535
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2536
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
|
2537
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'
|
2538
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
|
2539
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
|
2540
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
|
2541
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
|
2542
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
|
2543
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
|
2544
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
|
2545
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:86:in `block in pre_process'
|
2546
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `catch'
|
2547
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `pre_process'
|
2548
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:53:in `process'
|
2549
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:39:in `receive_data'
|
2550
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
2551
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
2552
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
2553
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
2554
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
2555
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
2556
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
2557
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
2558
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `load'
|
2559
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `<main>'
|
2560
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
|
2561
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
|
2562
|
+
Exiting!
|
2563
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2564
|
+
Using rack adapter
|
2565
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2566
|
+
Debugging ON
|
2567
|
+
Maximum connections set to 1024
|
2568
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2569
|
+
RuntimeError - {"user"=>{:content_type=>"json", :body=>"{\"username\":\"Test\"}", :status_code=>200, :requested_with=>"I am a body", :sleep=>false, :persisted=>false}} ----> {:content_type=>"json", :body=>"{\"username\":\"Test\"}", :status_code=>200, :requested_with=>"I am a body", :sleep=>false, :persisted=>false} ----> :
|
2570
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:34:in `block in <class:Server>'
|
2571
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
|
2572
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
|
2573
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
|
2574
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
|
2575
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
|
2576
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
|
2577
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
|
2578
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
|
2579
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
|
2580
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
|
2581
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
|
2582
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
|
2583
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
|
2584
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2585
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2586
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2587
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
|
2588
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
|
2589
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2590
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2591
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2592
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
|
2593
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
|
2594
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
|
2595
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
|
2596
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
|
2597
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2598
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2599
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
|
2600
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'
|
2601
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
|
2602
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
|
2603
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
|
2604
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
|
2605
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
|
2606
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
|
2607
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
|
2608
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:86:in `block in pre_process'
|
2609
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `catch'
|
2610
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `pre_process'
|
2611
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:53:in `process'
|
2612
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:39:in `receive_data'
|
2613
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
2614
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
2615
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
2616
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
2617
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
2618
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
2619
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
2620
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
2621
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `load'
|
2622
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `<main>'
|
2623
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
|
2624
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
|
2625
|
+
Exiting!
|
2626
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2627
|
+
Using rack adapter
|
2628
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2629
|
+
Debugging ON
|
2630
|
+
Maximum connections set to 1024
|
2631
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2632
|
+
NameError - undefined local variable or method `path' for #<OptimusPrime::Server:0x00000102148c70>:
|
2633
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:32:in `block in <class:Server>'
|
2634
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
|
2635
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
|
2636
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
|
2637
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
|
2638
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
|
2639
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
|
2640
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
|
2641
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
|
2642
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
|
2643
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
|
2644
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
|
2645
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
|
2646
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
|
2647
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2648
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2649
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2650
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
|
2651
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
|
2652
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2653
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2654
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2655
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
|
2656
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
|
2657
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
|
2658
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
|
2659
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
|
2660
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2661
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2662
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
|
2663
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'
|
2664
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
|
2665
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
|
2666
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
|
2667
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
|
2668
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
|
2669
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
|
2670
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
|
2671
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:86:in `block in pre_process'
|
2672
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `catch'
|
2673
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `pre_process'
|
2674
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:53:in `process'
|
2675
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:39:in `receive_data'
|
2676
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
2677
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
2678
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
2679
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
2680
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
2681
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
2682
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
2683
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
2684
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `load'
|
2685
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `<main>'
|
2686
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
|
2687
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
|
2688
|
+
Exiting!
|
2689
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2690
|
+
Using rack adapter
|
2691
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2692
|
+
Debugging ON
|
2693
|
+
Maximum connections set to 1024
|
2694
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
2695
|
+
NameError - undefined local variable or method `path' for #<OptimusPrime::Server:0x0000010309d950>:
|
2696
|
+
/Users/user/dev/optimus_prime/lib/optimus_prime/server.rb:40:in `block in <class:Server>'
|
2697
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
|
2698
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
|
2699
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
|
2700
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
|
2701
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
|
2702
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
|
2703
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
|
2704
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
|
2705
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
|
2706
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
|
2707
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
|
2708
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
|
2709
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
|
2710
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2711
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2712
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2713
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
|
2714
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
|
2715
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
|
2716
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
|
2717
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
|
2718
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
|
2719
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
|
2720
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
|
2721
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
|
2722
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
|
2723
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2724
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
|
2725
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
|
2726
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/nulllogger.rb:9:in `call'
|
2727
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/rack-1.5.2/lib/rack/head.rb:11:in `call'
|
2728
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
|
2729
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
|
2730
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
|
2731
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
|
2732
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
|
2733
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
|
2734
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:86:in `block in pre_process'
|
2735
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `catch'
|
2736
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:84:in `pre_process'
|
2737
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:53:in `process'
|
2738
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/connection.rb:39:in `receive_data'
|
2739
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
2740
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
2741
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
2742
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
2743
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
2744
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
2745
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
2746
|
+
/Users/user/.rvm/gems/ruby-2.1.1/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
2747
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `load'
|
2748
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/thin:23:in `<main>'
|
2749
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
|
2750
|
+
/Users/user/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
|
2751
|
+
Exiting!
|
2752
|
+
Writing PID to /Users/user/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
2753
|
+
Using rack adapter
|
2754
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
2755
|
+
Debugging ON
|
2756
|
+
Maximum connections set to 1024
|
2757
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
@@ -9,20 +9,20 @@ describe OptimusPrime do
|
|
9
9
|
it "primes an endpoint with attributes" do
|
10
10
|
op.prime("test", "I am a response")
|
11
11
|
|
12
|
-
response = ::Faraday.get("http://localhost:
|
12
|
+
response = ::Faraday.get("http://localhost:7003/get/test")
|
13
13
|
expect( response.body ).to eq "I am a response"
|
14
14
|
end
|
15
15
|
|
16
16
|
it "sets a content type" do
|
17
17
|
op.prime("test", "I am a response", content_type: :json)
|
18
18
|
|
19
|
-
response = ::Faraday.get("http://localhost:
|
19
|
+
response = ::Faraday.get("http://localhost:7003/get/test")
|
20
20
|
expect( response.headers["content-type"] ).to eq "application/json"
|
21
21
|
end
|
22
22
|
|
23
23
|
it "retrieves a path containing attributes" do
|
24
24
|
op.prime("route/name", "<html><head><title>Response</title></head><body><h1>Hi</h1><body></html>", content_type: :html)
|
25
|
-
response = ::Faraday.get('http://localhost:
|
25
|
+
response = ::Faraday.get('http://localhost:7003/get/route/name')
|
26
26
|
|
27
27
|
expect(response.headers["content-type"]).to include("text/html")
|
28
28
|
expect(response.body).to include("<h1>Hi</h1>")
|
@@ -30,44 +30,38 @@ describe OptimusPrime do
|
|
30
30
|
|
31
31
|
it "retrieves a very nested path" do
|
32
32
|
op.prime("getUserProfile/queue/token/12345678", { username: 'Antonio', age: 21 }.to_json, content_type: :json)
|
33
|
-
response = ::Faraday.get('http://localhost:
|
33
|
+
response = ::Faraday.get('http://localhost:7003/get/getUserProfile/queue/token/12345678')
|
34
34
|
|
35
35
|
expect(JSON.parse(response.body)).to eq({ "username" => "Antonio", "age" => 21 })
|
36
36
|
end
|
37
37
|
|
38
|
-
it "retrieves from url with params" do
|
39
|
-
op.prime("getUser?id=10&queue=NaN", { username: "Test" }.to_json, content_type: :json)
|
40
|
-
response = ::Faraday.get('http://localhost:7002/get/getUser?id=10&queue=NaN')
|
41
|
-
|
42
|
-
expect( JSON.parse(response.body) ).to eq({ "username" => "Test" })
|
43
|
-
end
|
44
|
-
|
45
38
|
it "returns a 404 when endpoint is not found" do
|
46
|
-
response = ::Faraday.get('http://localhost:
|
39
|
+
response = ::Faraday.get('http://localhost:7003/get/iDoNotExist')
|
47
40
|
|
48
41
|
expect( response.status ).to eq 404
|
49
42
|
end
|
50
43
|
|
51
44
|
it "allows developers to change the response status code" do
|
52
45
|
op.prime("notFound", { username: "Test" }.to_json, content_type: :json, status_code: 404)
|
53
|
-
response = ::Faraday.get('http://localhost:
|
46
|
+
response = ::Faraday.get('http://localhost:7003/get/notFound')
|
54
47
|
|
55
48
|
expect( response.status ).to eq 404
|
56
49
|
end
|
57
50
|
|
58
51
|
it "returns 200 http status code as default" do
|
59
52
|
op.prime("continue", { username: "Test" }.to_json, content_type: :json)
|
60
|
-
response = ::Faraday.get('http://localhost:
|
53
|
+
response = ::Faraday.get('http://localhost:7003/get/continue')
|
61
54
|
|
62
55
|
expect( response.status ).to eq 200
|
63
56
|
end
|
64
57
|
|
58
|
+
|
65
59
|
context "Asserting on request content" do
|
66
60
|
|
67
61
|
it "returns a 404 if the request body does not match the assertion" do
|
68
62
|
op.prime("user", { username: "Test" }.to_json, content_type: :json, requested_with: "haha")
|
69
63
|
|
70
|
-
response = ::Faraday.post('http://localhost:
|
64
|
+
response = ::Faraday.post('http://localhost:7003/get/user', "I am a body")
|
71
65
|
|
72
66
|
expect( response.status ).to eq 404
|
73
67
|
end
|
@@ -75,7 +69,7 @@ describe OptimusPrime do
|
|
75
69
|
it "returns a 200 if the request body does match the assertion" do
|
76
70
|
op.prime("user", { username: "Test" }.to_json, content_type: :json, requested_with: "I am a body")
|
77
71
|
|
78
|
-
response = ::Faraday.post('http://localhost:
|
72
|
+
response = ::Faraday.post('http://localhost:7003/get/user', "I am a body")
|
79
73
|
|
80
74
|
expect( response.status ).to eq 200
|
81
75
|
end
|
@@ -87,7 +81,7 @@ describe OptimusPrime do
|
|
87
81
|
it "#GET tells the server to sleep for 10 seconds in order to reproduce timeouts" do
|
88
82
|
op.prime("userAsleep", { username: "Test" }.to_json, content_type: :json, sleep: 10)
|
89
83
|
|
90
|
-
f = ::Faraday.new('http://localhost:
|
84
|
+
f = ::Faraday.new('http://localhost:7003/get/')
|
91
85
|
f.options.timeout = 0
|
92
86
|
|
93
87
|
expect { f.get("/userAsleep") }.to raise_error(Faraday::TimeoutError)
|
@@ -98,7 +92,7 @@ describe OptimusPrime do
|
|
98
92
|
it "#POST tells the server to sleep for n seconds in order to reproduce timeouts" do
|
99
93
|
op.prime("userAsleepAgain", { username: "Test" }.to_json, content_type: :json, sleep: 10)
|
100
94
|
|
101
|
-
f = ::Faraday.new('http://localhost:
|
95
|
+
f = ::Faraday.new('http://localhost:7003/get/')
|
102
96
|
f.options.timeout = 0
|
103
97
|
|
104
98
|
expect { f.get("/userAsleepAgain") }.to raise_error(Faraday::TimeoutError)
|
@@ -108,23 +102,23 @@ describe OptimusPrime do
|
|
108
102
|
|
109
103
|
end
|
110
104
|
|
111
|
-
it "creates a record for with default params" do
|
105
|
+
it "#POST creates a record for with default params" do
|
112
106
|
op.prime("posts/1", {}, content_type: :json)
|
113
107
|
|
114
|
-
::Faraday.post("http://localhost:
|
108
|
+
::Faraday.post("http://localhost:7003/get/posts/1", { text: "I have been created", age: 21, category: "user" })
|
115
109
|
|
116
|
-
expect( JSON.parse(::Faraday.get("http://localhost:
|
110
|
+
expect( JSON.parse(::Faraday.get("http://localhost:7003/get/posts/1").body, symbolize_names: true) ).to eq({:age=>"21", :category=>"user", :text=>"I have been created"})
|
117
111
|
end
|
118
112
|
|
119
113
|
context "#PUT" do
|
120
114
|
it "persists a request when told so" do
|
121
115
|
op.prime("persisted", { text: "" }.to_json, persisted: true, content_type: :json)
|
122
116
|
|
123
|
-
expect( JSON.parse(::Faraday.get("http://localhost:
|
117
|
+
expect( JSON.parse(::Faraday.get("http://localhost:7003/get/persisted").body) ).to eq({ "text" => "" })
|
124
118
|
|
125
|
-
::Faraday.put("http://localhost:
|
119
|
+
::Faraday.put("http://localhost:7003/get/persisted", { id: 1 })
|
126
120
|
|
127
|
-
expect( JSON.parse(::Faraday.get("http://localhost:
|
121
|
+
expect( JSON.parse(::Faraday.get("http://localhost:7003/get/persisted").body, symbolize_names: true) ).to eq({ text: "", id: "1"})
|
128
122
|
end
|
129
123
|
|
130
124
|
end
|
data/spec/lib/start_stop_spec.rb
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
describe OptimusPrime, "Starting and Stopping the server" do
|
2
|
+
|
3
|
+
it "allows devs to change server port" do
|
4
|
+
OptimusPrime.stop_server
|
5
|
+
OptimusPrime.start_server(port: 7004)
|
6
|
+
expect( `lsof -i:7003` ).to include("COMMAND")
|
7
|
+
OptimusPrime.stop_server
|
8
|
+
end
|
9
|
+
|
10
|
+
it "starts the server in test mode" do
|
11
|
+
OptimusPrime.stop_server
|
12
|
+
OptimusPrime.start_server
|
13
|
+
expect( `lsof -i:7003` ).to include("COMMAND")
|
14
|
+
OptimusPrime.stop_server
|
15
|
+
end
|
16
|
+
|
2
17
|
it "starts the server" do
|
3
18
|
OptimusPrime.restart_server
|
4
19
|
expect( `ls ./tmp/pids` ).to include("optimus_prime.pid")
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optimus_prime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antonio Nalesso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|