optimus_prime 1.1.0 → 1.2.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.
- checksums.yaml +4 -4
- data/README.md +19 -0
- data/lib/optimus_prime/server.rb +27 -1
- data/lib/optimus_prime/version.rb +1 -1
- data/lib/optimus_prime.rb +10 -0
- data/optimus_prime.log +391 -0
- data/spec/lib/optimus_prime_spec.rb +46 -0
- data/tags +27 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70074643332d2f2a130569b35239fefac9062280
|
4
|
+
data.tar.gz: b62db5a9db6fc8eb02ad217d8545350a86ba9f4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2c5184afdfb721f2c54895c36435ba6d8bab90e216ae1aef9236edbc3f49c0704a9ae47135f19f476ea28d62569168762614019be2f3d2802a8515954843dc8
|
7
|
+
data.tar.gz: 1416cefe5dce5c950357f73f6e61b9ec02a0f92a49f04762bb020bb61960e7790b193aa98e6a811d5ff512ad893a20104e231fb126a2b298ae7b40d7eed406b1
|
data/README.md
CHANGED
@@ -111,6 +111,25 @@ get/i-am-not-primed: {
|
|
111
111
|
}
|
112
112
|
```
|
113
113
|
|
114
|
+
## Counting the number of requests made for an endpoint (GET and POST)
|
115
|
+
```ruby
|
116
|
+
op.prime('your/endpoint')
|
117
|
+
Faraday.get("http://localhost:7002/get/your/endpoint")
|
118
|
+
op.count('your/endpoint') #=> 1
|
119
|
+
```
|
120
|
+
|
121
|
+
## Get the requests made to an endpoint
|
122
|
+
```ruby
|
123
|
+
# GET Requests
|
124
|
+
op.prime('your/endpoint')
|
125
|
+
Faraday.get("http://localhost:7002/get/your/endpoint")
|
126
|
+
op.count('your/endpoint') #=> ["method" => "GET", "body" => ""]
|
127
|
+
|
128
|
+
# POST Requests
|
129
|
+
op.prime('your/endpoint')
|
130
|
+
Faraday.post("http://localhost:7002/get/your/endpoint", {some: "data"})
|
131
|
+
op.count('your/endpoint') #=> ["method" => "GET", "body" => "some=data"]
|
132
|
+
```
|
114
133
|
|
115
134
|
## TODO
|
116
135
|
* Move server initialisation into rake task in order to prevent it from initialising
|
data/lib/optimus_prime/server.rb
CHANGED
@@ -5,10 +5,16 @@ require "json"
|
|
5
5
|
module OptimusPrime
|
6
6
|
|
7
7
|
class Server < ::Sinatra::Base
|
8
|
+
before do
|
9
|
+
content_type :json
|
10
|
+
headers 'Access-Control-Allow-Origin' => '*',
|
11
|
+
'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
|
12
|
+
end
|
8
13
|
|
9
14
|
set :public_folder, __dir__ + "/server/public"
|
10
15
|
|
11
16
|
@@responses ||= {}
|
17
|
+
@@requests ||= {}
|
12
18
|
@@not_primed ||= {}
|
13
19
|
|
14
20
|
put "/get/*" do
|
@@ -53,6 +59,8 @@ module OptimusPrime
|
|
53
59
|
@@responses[path][:body] = new_body.to_json
|
54
60
|
end
|
55
61
|
|
62
|
+
record_request(path)
|
63
|
+
|
56
64
|
content_type(response[:content_type])
|
57
65
|
status(response[:status_code])
|
58
66
|
|
@@ -61,9 +69,15 @@ module OptimusPrime
|
|
61
69
|
response[:body]
|
62
70
|
end
|
63
71
|
|
72
|
+
def record_request(path)
|
73
|
+
requests[path][:count] += 1
|
74
|
+
request_made = {method: self.env["REQUEST_METHOD"], body: request.params }
|
75
|
+
requests[path][:requests].push(request_made)
|
76
|
+
end
|
77
|
+
|
64
78
|
def get_path
|
65
79
|
# self.env["REQUEST_URI"].scan(/^\/get\/([\/\w+]+)(\/|\?|$)/).flatten[0]
|
66
|
-
self.env["REQUEST_URI"].sub(
|
80
|
+
self.env["REQUEST_URI"].sub(/\/get\/|\/requests\//, "")
|
67
81
|
end
|
68
82
|
|
69
83
|
get "/get/*" do
|
@@ -75,6 +89,8 @@ module OptimusPrime
|
|
75
89
|
return 404
|
76
90
|
end
|
77
91
|
|
92
|
+
record_request(path)
|
93
|
+
|
78
94
|
sleep(response[:sleep].to_f) if response[:sleep]
|
79
95
|
|
80
96
|
content_type(response[:content_type])
|
@@ -85,6 +101,7 @@ module OptimusPrime
|
|
85
101
|
post "/prime" do
|
86
102
|
path = params["path_name"]
|
87
103
|
responses[path] = { content_type: (params["content_type"] || :html), body: params["response"], status_code: (params["status_code"] || 200), requested_with: (params["requested_with"] || false), sleep: (params["sleep"] || false), persisted: (params["persisted"] || false) }
|
104
|
+
requests[path] = { count: 0, requests: [] }
|
88
105
|
201
|
89
106
|
end
|
90
107
|
|
@@ -97,6 +114,11 @@ module OptimusPrime
|
|
97
114
|
@@responses = {}
|
98
115
|
end
|
99
116
|
|
117
|
+
get "/requests/*" do
|
118
|
+
path = get_path
|
119
|
+
requests[path].to_json
|
120
|
+
end
|
121
|
+
|
100
122
|
get "/not-primed" do
|
101
123
|
content_type :json
|
102
124
|
@@not_primed.to_json
|
@@ -108,6 +130,10 @@ module OptimusPrime
|
|
108
130
|
@@responses
|
109
131
|
end
|
110
132
|
|
133
|
+
def requests
|
134
|
+
@@requests
|
135
|
+
end
|
136
|
+
|
111
137
|
def get_boolean(boolean)
|
112
138
|
boolean == "true"
|
113
139
|
end
|
data/lib/optimus_prime.rb
CHANGED
@@ -50,5 +50,15 @@ module OptimusPrime
|
|
50
50
|
::Faraday.get("http://localhost:#{OptimusPrime.op_port}/clear")
|
51
51
|
end
|
52
52
|
|
53
|
+
def count(path_name)
|
54
|
+
requests = ::Faraday.get("http://localhost:#{OptimusPrime.op_port}/requests/#{path_name}").body
|
55
|
+
JSON.parse(requests)["count"]
|
56
|
+
end
|
57
|
+
|
58
|
+
def requests(path_name)
|
59
|
+
requests = ::Faraday.get("http://localhost:#{OptimusPrime.op_port}/requests/#{path_name}").body
|
60
|
+
JSON.parse(requests)["requests"]
|
61
|
+
end
|
62
|
+
|
53
63
|
end
|
54
64
|
end
|
data/optimus_prime.log
CHANGED
@@ -3410,3 +3410,394 @@ Thin web server (v1.6.2 codename Doc Brown)
|
|
3410
3410
|
Debugging ON
|
3411
3411
|
Maximum connections set to 1024
|
3412
3412
|
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3413
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3414
|
+
Using rack adapter
|
3415
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3416
|
+
Debugging ON
|
3417
|
+
Maximum connections set to 1024
|
3418
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3419
|
+
Exiting!
|
3420
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3421
|
+
Using rack adapter
|
3422
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3423
|
+
Debugging ON
|
3424
|
+
Maximum connections set to 1024
|
3425
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3426
|
+
Exiting!
|
3427
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3428
|
+
Using rack adapter
|
3429
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3430
|
+
Debugging ON
|
3431
|
+
Maximum connections set to 1024
|
3432
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3433
|
+
Exiting!
|
3434
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3435
|
+
Using rack adapter
|
3436
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3437
|
+
Debugging ON
|
3438
|
+
Maximum connections set to 1024
|
3439
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3440
|
+
Exiting!
|
3441
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3442
|
+
Using rack adapter
|
3443
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3444
|
+
Debugging ON
|
3445
|
+
Maximum connections set to 1024
|
3446
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3447
|
+
Exiting!
|
3448
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3449
|
+
Using rack adapter
|
3450
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3451
|
+
Debugging ON
|
3452
|
+
Maximum connections set to 1024
|
3453
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3454
|
+
Exiting!
|
3455
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3456
|
+
Using rack adapter
|
3457
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3458
|
+
Debugging ON
|
3459
|
+
Maximum connections set to 1024
|
3460
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3461
|
+
Exiting!
|
3462
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3463
|
+
Using rack adapter
|
3464
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3465
|
+
Debugging ON
|
3466
|
+
Maximum connections set to 1024
|
3467
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3468
|
+
Exiting!
|
3469
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3470
|
+
Using rack adapter
|
3471
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3472
|
+
Debugging ON
|
3473
|
+
Maximum connections set to 1024
|
3474
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3475
|
+
Exiting!
|
3476
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3477
|
+
Using rack adapter
|
3478
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3479
|
+
Debugging ON
|
3480
|
+
Maximum connections set to 1024
|
3481
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3482
|
+
Exiting!
|
3483
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3484
|
+
Using rack adapter
|
3485
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3486
|
+
Debugging ON
|
3487
|
+
Maximum connections set to 1024
|
3488
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3489
|
+
Exiting!
|
3490
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3491
|
+
Using rack adapter
|
3492
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3493
|
+
Debugging ON
|
3494
|
+
Maximum connections set to 1024
|
3495
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3496
|
+
Exiting!
|
3497
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3498
|
+
Using rack adapter
|
3499
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3500
|
+
Debugging ON
|
3501
|
+
Maximum connections set to 1024
|
3502
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3503
|
+
Exiting!
|
3504
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3505
|
+
Using rack adapter
|
3506
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3507
|
+
Debugging ON
|
3508
|
+
Maximum connections set to 1024
|
3509
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3510
|
+
Exiting!
|
3511
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3512
|
+
Using rack adapter
|
3513
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3514
|
+
Debugging ON
|
3515
|
+
Maximum connections set to 1024
|
3516
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3517
|
+
Exiting!
|
3518
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3519
|
+
Using rack adapter
|
3520
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3521
|
+
Debugging ON
|
3522
|
+
Maximum connections set to 1024
|
3523
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3524
|
+
Exiting!
|
3525
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3526
|
+
Using rack adapter
|
3527
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3528
|
+
Debugging ON
|
3529
|
+
Maximum connections set to 1024
|
3530
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3531
|
+
Exiting!
|
3532
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3533
|
+
Using rack adapter
|
3534
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3535
|
+
Debugging ON
|
3536
|
+
Maximum connections set to 1024
|
3537
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3538
|
+
Exiting!
|
3539
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3540
|
+
Using rack adapter
|
3541
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3542
|
+
Debugging ON
|
3543
|
+
Maximum connections set to 1024
|
3544
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3545
|
+
Exiting!
|
3546
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3547
|
+
Using rack adapter
|
3548
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3549
|
+
Debugging ON
|
3550
|
+
Maximum connections set to 1024
|
3551
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3552
|
+
Exiting!
|
3553
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3554
|
+
Using rack adapter
|
3555
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3556
|
+
Debugging ON
|
3557
|
+
Maximum connections set to 1024
|
3558
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3559
|
+
Waiting for 2 connection(s) to finish, can take up to 30 sec, CTRL+C to stop now
|
3560
|
+
Exiting!
|
3561
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3562
|
+
Using rack adapter
|
3563
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3564
|
+
Debugging ON
|
3565
|
+
Maximum connections set to 1024
|
3566
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3567
|
+
Exiting!
|
3568
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3569
|
+
Using rack adapter
|
3570
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3571
|
+
Debugging ON
|
3572
|
+
Maximum connections set to 1024
|
3573
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3574
|
+
Exiting!
|
3575
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3576
|
+
Using rack adapter
|
3577
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3578
|
+
Debugging ON
|
3579
|
+
Maximum connections set to 1024
|
3580
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3581
|
+
Exiting!
|
3582
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3583
|
+
Using rack adapter
|
3584
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3585
|
+
Debugging ON
|
3586
|
+
Maximum connections set to 1024
|
3587
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3588
|
+
Exiting!
|
3589
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3590
|
+
Using rack adapter
|
3591
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3592
|
+
Debugging ON
|
3593
|
+
Maximum connections set to 1024
|
3594
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3595
|
+
Exiting!
|
3596
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3597
|
+
Using rack adapter
|
3598
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3599
|
+
Debugging ON
|
3600
|
+
Maximum connections set to 1024
|
3601
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3602
|
+
Exiting!
|
3603
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3604
|
+
Using rack adapter
|
3605
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3606
|
+
Debugging ON
|
3607
|
+
Maximum connections set to 1024
|
3608
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3609
|
+
Exiting!
|
3610
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3611
|
+
Using rack adapter
|
3612
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3613
|
+
Debugging ON
|
3614
|
+
Maximum connections set to 1024
|
3615
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3616
|
+
Exiting!
|
3617
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3618
|
+
Using rack adapter
|
3619
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3620
|
+
Debugging ON
|
3621
|
+
Maximum connections set to 1024
|
3622
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3623
|
+
Exiting!
|
3624
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3625
|
+
Using rack adapter
|
3626
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3627
|
+
Debugging ON
|
3628
|
+
Maximum connections set to 1024
|
3629
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3630
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3631
|
+
Using rack adapter
|
3632
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3633
|
+
Debugging ON
|
3634
|
+
Maximum connections set to 1024
|
3635
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3636
|
+
Exiting!
|
3637
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3638
|
+
Using rack adapter
|
3639
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3640
|
+
Debugging ON
|
3641
|
+
Maximum connections set to 1024
|
3642
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3643
|
+
Exiting!
|
3644
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3645
|
+
Using rack adapter
|
3646
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3647
|
+
Debugging ON
|
3648
|
+
Maximum connections set to 1024
|
3649
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3650
|
+
Exiting!
|
3651
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3652
|
+
Using rack adapter
|
3653
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3654
|
+
Debugging ON
|
3655
|
+
Maximum connections set to 1024
|
3656
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3657
|
+
Exiting!
|
3658
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3659
|
+
Using rack adapter
|
3660
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3661
|
+
Debugging ON
|
3662
|
+
Maximum connections set to 1024
|
3663
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3664
|
+
Exiting!
|
3665
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3666
|
+
Using rack adapter
|
3667
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3668
|
+
Debugging ON
|
3669
|
+
Maximum connections set to 1024
|
3670
|
+
Listening on 0.0.0.0:7004, CTRL+C to stop
|
3671
|
+
Exiting!
|
3672
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3673
|
+
Using rack adapter
|
3674
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3675
|
+
Debugging ON
|
3676
|
+
Maximum connections set to 1024
|
3677
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3678
|
+
Exiting!
|
3679
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3680
|
+
Using rack adapter
|
3681
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3682
|
+
Debugging ON
|
3683
|
+
Maximum connections set to 1024
|
3684
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3685
|
+
Exiting!
|
3686
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3687
|
+
Using rack adapter
|
3688
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3689
|
+
Debugging ON
|
3690
|
+
Maximum connections set to 1024
|
3691
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3692
|
+
Exiting!
|
3693
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3694
|
+
Using rack adapter
|
3695
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3696
|
+
Debugging ON
|
3697
|
+
Maximum connections set to 1024
|
3698
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3699
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3700
|
+
Using rack adapter
|
3701
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3702
|
+
Debugging ON
|
3703
|
+
Maximum connections set to 1024
|
3704
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3705
|
+
|
3706
|
+
[1mFrom:[0m /Users/mars/dev/optimus_prime/lib/optimus_prime/server.rb @ line 75 OptimusPrime::Server#record_request:
|
3707
|
+
|
3708
|
+
[1;34m72[0m: [32mdef[0m [1;34mrecord_request[0m(path)
|
3709
|
+
[1;34m73[0m: requests[path][[33m:count[0m] += [1;34m1[0m
|
3710
|
+
[1;34m74[0m: require [31m[1;31m'[0m[31mpry[1;31m'[0m[31m[0m
|
3711
|
+
=> [1;34m75[0m: binding.pry
|
3712
|
+
[1;34m76[0m: request_made = {[35mmethod[0m: [1;36mself[0m.env[[31m[1;31m"[0m[31mREQUEST_METHOD[1;31m"[0m[31m[0m], [35mbody[0m: request.body.read}
|
3713
|
+
[1;34m77[0m: requests[path][[33m:requests[0m].push(request_made)
|
3714
|
+
[1;34m78[0m: [32mend[0m
|
3715
|
+
|
3716
|
+
[0G[?1034h[1] pry(#<OptimusPrime::Server>)> Waiting for 2 connection(s) to finish, can take up to 30 sec, CTRL+C to stop now
|
3717
|
+
Exiting!
|
3718
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3719
|
+
Using rack adapter
|
3720
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3721
|
+
Debugging ON
|
3722
|
+
Maximum connections set to 1024
|
3723
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3724
|
+
Exiting!
|
3725
|
+
/Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)
|
3726
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_server'
|
3727
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/tcp_server.rb:16:in `connect'
|
3728
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/base.rb:63:in `block in start'
|
3729
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `call'
|
3730
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
3731
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
3732
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
3733
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
3734
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
3735
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
3736
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
3737
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
3738
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/thin:23:in `load'
|
3739
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/thin:23:in `<main>'
|
3740
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/ruby_executable_hooks:15:in `eval'
|
3741
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/ruby_executable_hooks:15:in `<main>'
|
3742
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3743
|
+
Using rack adapter
|
3744
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3745
|
+
Debugging ON
|
3746
|
+
Maximum connections set to 1024
|
3747
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3748
|
+
|
3749
|
+
[1mFrom:[0m /Users/mars/dev/optimus_prime/lib/optimus_prime/server.rb @ line 75 OptimusPrime::Server#record_request:
|
3750
|
+
|
3751
|
+
[1;34m72[0m: [32mdef[0m [1;34mrecord_request[0m(path)
|
3752
|
+
[1;34m73[0m: requests[path][[33m:count[0m] += [1;34m1[0m
|
3753
|
+
[1;34m74[0m: require [31m[1;31m'[0m[31mpry[1;31m'[0m[31m[0m
|
3754
|
+
=> [1;34m75[0m: binding.pry
|
3755
|
+
[1;34m76[0m: request_made = {[35mmethod[0m: [1;36mself[0m.env[[31m[1;31m"[0m[31mREQUEST_METHOD[1;31m"[0m[31m[0m], [35mbody[0m: request.body.read}
|
3756
|
+
[1;34m77[0m: requests[path][[33m:requests[0m].push(request_made)
|
3757
|
+
[1;34m78[0m: [32mend[0m
|
3758
|
+
|
3759
|
+
[0G[?1034h[1] pry(#<OptimusPrime::Server>)> Exiting!
|
3760
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3761
|
+
Using rack adapter
|
3762
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3763
|
+
Debugging ON
|
3764
|
+
Maximum connections set to 1024
|
3765
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3766
|
+
Exiting!
|
3767
|
+
/Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)
|
3768
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in `start_server'
|
3769
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/tcp_server.rb:16:in `connect'
|
3770
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/base.rb:63:in `block in start'
|
3771
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `call'
|
3772
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run_machine'
|
3773
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/eventmachine-1.0.3/lib/eventmachine.rb:187:in `run'
|
3774
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/backends/base.rb:73:in `start'
|
3775
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/server.rb:162:in `start'
|
3776
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/controllers/controller.rb:87:in `start'
|
3777
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
|
3778
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
|
3779
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
|
3780
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/thin:23:in `load'
|
3781
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/thin:23:in `<main>'
|
3782
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/ruby_executable_hooks:15:in `eval'
|
3783
|
+
from /Users/mars/.rvm/gems/ruby-2.1.1@order-tracking/bin/ruby_executable_hooks:15:in `<main>'
|
3784
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3785
|
+
Using rack adapter
|
3786
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3787
|
+
Debugging ON
|
3788
|
+
Maximum connections set to 1024
|
3789
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3790
|
+
Exiting!
|
3791
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3792
|
+
Using rack adapter
|
3793
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3794
|
+
Debugging ON
|
3795
|
+
Maximum connections set to 1024
|
3796
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
3797
|
+
Exiting!
|
3798
|
+
Writing PID to /Users/mars/dev/optimus_prime/tmp/pids/optimus_prime.pid
|
3799
|
+
Using rack adapter
|
3800
|
+
Thin web server (v1.6.2 codename Doc Brown)
|
3801
|
+
Debugging ON
|
3802
|
+
Maximum connections set to 1024
|
3803
|
+
Listening on 0.0.0.0:7003, CTRL+C to stop
|
@@ -137,4 +137,50 @@ describe OptimusPrime do
|
|
137
137
|
|
138
138
|
end
|
139
139
|
|
140
|
+
context "lets you know how many times a request is made for a path" do
|
141
|
+
|
142
|
+
it "GET" do
|
143
|
+
op.prime("continue", { username: "Test" }.to_json, content_type: :json)
|
144
|
+
expect( ::Faraday.get("http://localhost:7003/requests/continue").body ).to include("\"count\":0")
|
145
|
+
expect( op.count('continue') ).to eq(0)
|
146
|
+
::Faraday.get("http://localhost:7003/get/continue")
|
147
|
+
expect( op.count('continue') ).to eq(1)
|
148
|
+
expect( ::Faraday.get("http://localhost:7003/requests/continue").body ).to include("\"count\":1")
|
149
|
+
end
|
150
|
+
|
151
|
+
it "POST" do
|
152
|
+
op.prime("kermit", { username: "Test" }.to_json, content_type: :json)
|
153
|
+
expect( ::Faraday.get("http://localhost:7003/requests/kermit").body ).to include("\"count\":0")
|
154
|
+
expect( op.count('kermit') ).to eq(0)
|
155
|
+
::Faraday.post("http://localhost:7003/get/kermit")
|
156
|
+
expect( op.count('kermit') ).to eq(1)
|
157
|
+
expect( ::Faraday.get("http://localhost:7003/requests/kermit").body ).to include("\"count\":1")
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
161
|
+
|
162
|
+
context "it returns the requests made for a path" do
|
163
|
+
|
164
|
+
it "GET" do
|
165
|
+
op.prime("continue", { username: "Test" }.to_json, content_type: :json)
|
166
|
+
::Faraday.get("http://localhost:7003/get/continue")
|
167
|
+
expect( ::Faraday.get("http://localhost:7003/requests/continue").body ).to include("\"requests\":[{\"method\":\"GET\",\"body\":{}}]")
|
168
|
+
expect( op.requests("continue") ).to eq([{ "method" => "GET", "body" => {} }])
|
169
|
+
end
|
170
|
+
|
171
|
+
it "POST" do
|
172
|
+
op.prime("kermit", { username: "Test" }.to_json, content_type: :json)
|
173
|
+
::Faraday.post("http://localhost:7003/get/kermit", { username: "Test" })
|
174
|
+
expect( ::Faraday.get("http://localhost:7003/requests/kermit").body ).to include("\"requests\":[{\"method\":\"POST\",\"body\":{\"username\":\"Test\"}}]")
|
175
|
+
expect( op.requests("kermit") ).to eq([{ "method" => "POST", "body" => { "username" => "Test" } }])
|
176
|
+
end
|
177
|
+
|
178
|
+
it "returns a decoded body" do
|
179
|
+
op.prime("kermit", { username: "Test" }.to_json, content_type: :json)
|
180
|
+
::Faraday.post("http://localhost:7003/get/kermit", { word: "with spaces and other shit" })
|
181
|
+
expect( op.requests("kermit") ).to eq([{ "method" => "POST", "body" => {"word" => "with spaces and other shit"} }])
|
182
|
+
end
|
183
|
+
|
184
|
+
end
|
185
|
+
|
140
186
|
end
|
data/tags
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
2
|
+
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
3
|
+
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
4
|
+
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
5
|
+
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
6
|
+
!_TAG_PROGRAM_VERSION 5.8 //
|
7
|
+
Base lib/optimus_prime.rb /^ class Base$/;" c class:OptimusPrime
|
8
|
+
OptimusPrime lib/optimus_prime.rb /^module OptimusPrime$/;" m
|
9
|
+
OptimusPrime lib/optimus_prime/server.rb /^module OptimusPrime$/;" m
|
10
|
+
OptimusPrime lib/optimus_prime/version.rb /^module OptimusPrime$/;" m
|
11
|
+
Server lib/optimus_prime/server.rb /^ class Server < ::Sinatra::Base$/;" c class:OptimusPrime
|
12
|
+
clear! lib/optimus_prime.rb /^ def clear!$/;" f class:OptimusPrime.Base
|
13
|
+
count lib/optimus_prime.rb /^ def count(path_name)$/;" f class:OptimusPrime.Base
|
14
|
+
current_path lib/optimus_prime.rb /^ def self.current_path; `pwd`.chomp; end$/;" F class:OptimusPrime
|
15
|
+
full_path lib/optimus_prime.rb /^ def self.full_path$/;" F class:OptimusPrime
|
16
|
+
get_boolean lib/optimus_prime/server.rb /^ def get_boolean(boolean)$/;" f
|
17
|
+
get_path lib/optimus_prime/server.rb /^ def get_path$/;" f
|
18
|
+
op_port lib/optimus_prime.rb /^ def self.op_port; @@op_port; end$/;" F class:OptimusPrime
|
19
|
+
optimus_prime_path lib/optimus_prime.rb /^ def self.optimus_prime_path$/;" F class:OptimusPrime
|
20
|
+
prime lib/optimus_prime.rb /^ def prime(path_name, response="", options={})$/;" f class:OptimusPrime.Base
|
21
|
+
record_request lib/optimus_prime/server.rb /^ def record_request(path)$/;" f
|
22
|
+
requests lib/optimus_prime.rb /^ def requests(path_name)$/;" f class:OptimusPrime.Base
|
23
|
+
requests lib/optimus_prime/server.rb /^ def requests$/;" f
|
24
|
+
responses lib/optimus_prime/server.rb /^ def responses$/;" f
|
25
|
+
restart_server lib/optimus_prime.rb /^ def self.restart_server$/;" F class:OptimusPrime
|
26
|
+
start_server lib/optimus_prime.rb /^ def self.start_server(options={})$/;" F class:OptimusPrime
|
27
|
+
stop_server lib/optimus_prime.rb /^ def self.stop_server$/;" F class:OptimusPrime
|
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: 1.
|
4
|
+
version: 1.2.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-09-
|
11
|
+
date: 2014-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- spec/lib/optimus_prime_spec.rb
|
104
104
|
- spec/lib/start_stop_spec.rb
|
105
105
|
- spec/spec_helper.rb
|
106
|
+
- tags
|
106
107
|
homepage: ''
|
107
108
|
licenses:
|
108
109
|
- MIT
|