lookout-rack-utils 1.6.0 → 1.7.1
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 +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
|