lookout-rack-utils 1.6.0 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +23 -0
- data/lib/lookout/rack/utils/subroute.rb +1 -1
- data/lib/lookout/rack/utils/version.rb +1 -1
- data/lookout-rack-utils.gemspec +1 -1
- data/spec/subroute_spec.rb +18 -3
- data/spec/support/routehelpers.rb +5 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NzZmNWQ3MmJjNmM2Zjk4OThkODJkZmE3ZmExNzA2NmIwYTQ0NWVjMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2M1ZGMzZGJjNDc4ZTA3MDE4OGZlOGFlZGJhYzU3MzAzMmMwZmQ1ZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NWU4YmQ3NzEzNTkwZTdmYWI0ZTFiMDA5NjJkNjM0ZWFjZDRiYWUxMDBlZTM3
|
10
|
+
MzRjNzM4NDdiNDFiZGU1ZjUwMTU4NzEyNzFlYzQ2MTJmOWY0OWUzZWE4M2Jk
|
11
|
+
MjE3OTQ2ZmU2YzkyYTczMjlkYTBhNDg4M2IxMzY4Y2ZkMTA4NDY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTAxZGYxNjc0N2U5MTczNGJiOThkYTNmMDg0NWE4NGJkZGIxODgxOTAyYjVk
|
14
|
+
ZDVkOWU3M2RhZGIyNWQwODNhMjE3MGEzNmJkODg3N2E1Y2NiMTI5OTU4ZmYw
|
15
|
+
ZmYzZGYzZTc2ZTQwZDU4YmJlMDBiYmVmNjk1ODhlZDIzZGRiZDY=
|
data/README.md
CHANGED
@@ -94,6 +94,29 @@ path; the result can then be used, or just returned immediately to the browser.
|
|
94
94
|
post '/api/public/v1/user' do
|
95
95
|
subroute!("/api/public/v1/user/#{current_user.id}")
|
96
96
|
end
|
97
|
+
|
98
|
+
# A route that requires an id param
|
99
|
+
get '/api/public/v1/problem' do
|
100
|
+
halt 404 unless params[:id]
|
101
|
+
...
|
102
|
+
end
|
103
|
+
|
104
|
+
# Assuming the problem route above that takes an id parameter,
|
105
|
+
# pass information from one route to another in the correct form.
|
106
|
+
get '/api/public/v1/device/problem/:problem_id' do |problem_id|
|
107
|
+
subroute!('/api/public/v1/problem', :id => problem_id)
|
108
|
+
end
|
109
|
+
|
110
|
+
delete '/api/public/v1/user/:user_id' do |user_id|
|
111
|
+
...
|
112
|
+
end
|
113
|
+
|
114
|
+
# Assuming the delete route above, change the http verb of the request to
|
115
|
+
# another (a contrived example)
|
116
|
+
get '/api/public/v1/user/:user_id' do |user_id|
|
117
|
+
subroute!("/api/public/v1/user/#{user_id}", :request_method => 'DELETE')
|
118
|
+
end
|
119
|
+
|
97
120
|
```
|
98
121
|
|
99
122
|
## Contributing
|
@@ -15,7 +15,7 @@ module Lookout::Rack::Utils
|
|
15
15
|
|
16
16
|
# modify rack environment using Rack::Request- store passed in key/value
|
17
17
|
# pairs into hash associated with the parameters of the current http verb
|
18
|
-
options.each { |k,v| subserver.request.
|
18
|
+
options.each { |k,v| subserver.request.update_param(k, v) }
|
19
19
|
# Invoking Sinatra::Base#call! on our duplicated app instance. Sinatra's
|
20
20
|
# call will dup the app instance and then call!, so skip Sinatra's dup
|
21
21
|
# since we've done that here.
|
data/lookout-rack-utils.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_runtime_dependency "i18n"
|
29
29
|
|
30
|
-
spec.add_dependency "rack"
|
30
|
+
spec.add_dependency "rack", '>= 1.5.0'
|
31
31
|
spec.add_dependency "rack-graphite"
|
32
32
|
spec.add_dependency "rack-requestash"
|
33
33
|
spec.add_dependency "configatron", '~> 2.13'
|
data/spec/subroute_spec.rb
CHANGED
@@ -18,6 +18,10 @@ describe Lookout::Rack::Utils::Subroute, :type => :route do
|
|
18
18
|
subroute!('/test_route', :id => id)
|
19
19
|
end
|
20
20
|
|
21
|
+
put '/subrouted/request_params' do
|
22
|
+
subroute!('/test_route', 'key' => 'value')
|
23
|
+
end
|
24
|
+
|
21
25
|
delete '/test_delete' do
|
22
26
|
status 201
|
23
27
|
{ :deleted => true }.to_json
|
@@ -44,10 +48,21 @@ describe Lookout::Rack::Utils::Subroute, :type => :route do
|
|
44
48
|
let(:id) { 1 }
|
45
49
|
let(:body) { { :key => 'value', :id => "#{id}" }.to_json }
|
46
50
|
|
47
|
-
subject(:subrouted) { get "/subrouted/#{id}?key=value" }
|
48
51
|
|
49
|
-
|
50
|
-
|
52
|
+
context 'a get route' do
|
53
|
+
subject(:subrouted) { get "/subrouted/#{id}?key=value" }
|
54
|
+
|
55
|
+
it 'should return expected value' do
|
56
|
+
expect([subrouted.status, subrouted.body]).to eql [200, body]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'params added by subrouter, non-GET method' do
|
61
|
+
subject(:subrouted) { put '/subrouted/request_params' }
|
62
|
+
|
63
|
+
it 'should return expected value' do
|
64
|
+
expect([subrouted.status, subrouted.body]).to eql [200, { 'key' => 'value' }.to_json]
|
65
|
+
end
|
51
66
|
end
|
52
67
|
end
|
53
68
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lookout-rack-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.5.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ! '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 1.5.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rack-graphite
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|