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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzIxNjcxNGNjYjY5YWRjNTZjMTZiYWM5YTZlZGQ5MTI4NDQ5OGJiNw==
4
+ NzZmNWQ3MmJjNmM2Zjk4OThkODJkZmE3ZmExNzA2NmIwYTQ0NWVjMw==
5
5
  data.tar.gz: !binary |-
6
- ZWJjMzVjYWFmZTk3YzYxOTcwMTc4MzZhMzRjNGU3MTI5MGI0YjEyNg==
6
+ N2M1ZGMzZGJjNDc4ZTA3MDE4OGZlOGFlZGJhYzU3MzAzMmMwZmQ1ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjIzYjIyNjdkMTkzZWZmYWM0MDlmMjNiMGUyNjkyOTFlYjQxMWI2ZjA3ZjMz
10
- ZTUwODFkNmIxMzNhMjRhN2VmZmVmNWM5NjA1ZGMyZDQwODBmNGY4YmU1MjRh
11
- MDk3ZWJjYTAwNmE3Y2JmZTI5YWU0MmM0MWIzNDYzNzAzZGE2ZWU=
9
+ NWU4YmQ3NzEzNTkwZTdmYWI0ZTFiMDA5NjJkNjM0ZWFjZDRiYWUxMDBlZTM3
10
+ MzRjNzM4NDdiNDFiZGU1ZjUwMTU4NzEyNzFlYzQ2MTJmOWY0OWUzZWE4M2Jk
11
+ MjE3OTQ2ZmU2YzkyYTczMjlkYTBhNDg4M2IxMzY4Y2ZkMTA4NDY=
12
12
  data.tar.gz: !binary |-
13
- YjAzMGU4YjdkNmE2M2U2YmZlZTk4ZDEyMTAzM2I3Y2Q0ZmRjZTJmYTE1NmNm
14
- MjQ5YjcxYTkzMjRkNzEyZjllODJkZmU2MTJhODY4ODNkYjk5YTE4YjE5Zjll
15
- MWM3OTM0NWUzZTMwODc1NDVmMDI5MjY2OTFkYzMxMzk0ODlmOWU=
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.send(http_verb)[k] = v }
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.
@@ -1,7 +1,7 @@
1
1
  module Lookout
2
2
  module Rack
3
3
  module Utils
4
- VERSION = "1.6.0"
4
+ VERSION = "1.7.1"
5
5
  end
6
6
  end
7
7
  end
@@ -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'
@@ -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
- it 'should return expected value' do
50
- expect([subrouted.status, subrouted.body]).to eql [200, body]
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
 
@@ -6,6 +6,11 @@ module RouteHelpers
6
6
  status 200
7
7
  params.to_json
8
8
  end
9
+
10
+ put '/test_route' do
11
+ status 200
12
+ params.to_json
13
+ end
9
14
  end
10
15
 
11
16
  def app
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.6.0
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-22 00:00:00.000000000 Z
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: '0'
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: '0'
124
+ version: 1.5.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rack-graphite
127
127
  requirement: !ruby/object:Gem::Requirement