rack-app 5.10.0 → 5.10.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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65b1db9343140ad9785f449d4d2ebbfd0f3c860f
4
- data.tar.gz: f58629f4e5ebd8258c56a0fa76b298820ccfa47f
3
+ metadata.gz: 23e30b1cd43155376103906815a81992ab9fda1b
4
+ data.tar.gz: 95ed0ee6c980d7b029b1845f6c97ee09a08d9aec
5
5
  SHA512:
6
- metadata.gz: c7c7e69709ef90f0eb699e22afcc80f8669760458ecb7853bdee93881050f9ec2363a26c94328739054b818bb4e913419b968bd16e8349052c393ffe9822bb2e
7
- data.tar.gz: 105c6deb752cc928ef70f3d3ee8fd665f68b21b6c5ec1f568f490a46fdf9b26e5ef031a838d1e405d5185ffdc2463e57e505406134cd2ba13a5dbb42ff5095b3
6
+ metadata.gz: e8698f68df78a4bc3529f550ca4a8c1d206d93ebceeebddd6a11348a6bd96f29019017618dba991b3eb55e8b5df4d82a56eb2ff74283154de8bf4af7e635361f
7
+ data.tar.gz: ab5b5fb6425a362d1de374199e502c24a122dfe8fabc30afc5fa1a8c288330b7e3f1b50131ee75ae97978dddee64207c5a9c0af8cab2d74044d60f24fc81c694
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
  [travis-link]: https://travis-ci.org/rack-app/rack-app
5
5
  [travis-home]: http://travis-ci.org/
6
6
 
7
+ *Happy New Year!*
8
+
7
9
  Your next favourite rack based micro framework that is totally addition free!
8
10
  Have a cup of awesomeness with your performance designed framework!
9
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.10.0
1
+ 5.10.1
@@ -118,23 +118,19 @@ class Rack::App::Router::Dynamic < Rack::App::Router::Base
118
118
 
119
119
  def get_app(env)
120
120
  find_by_path_infos(env) do |path_info|
121
- c = fetch_context(get_request_method(env), path_info)
122
-
123
- if c.is_a?(Hash)
124
- c[:app]
125
- else
126
- nil
127
- end
121
+ fetch_context(get_request_method(env), path_info)
128
122
  end
129
123
  end
130
124
 
131
125
  def fetch_context(request_method, path_info)
126
+ current_cluster = main_cluster(request_method)
132
127
 
133
- last_mounted_directory = nil
134
128
  last_mounted_app = nil
135
- current_cluster = main_cluster(request_method)
136
-
137
- path_info.split('/').each do |path_part|
129
+ last_mounted_directory = nil
130
+
131
+ path_parts = path_info.split('/')
132
+ path_parts << '' if path_parts.empty?
133
+ path_parts.each do |path_part|
138
134
 
139
135
  last_mounted_directory = current_cluster[MOUNTED_DIRECTORY] || last_mounted_directory
140
136
  last_mounted_app = current_cluster[MOUNTED_APPLICATION] || last_mounted_app
@@ -145,6 +141,8 @@ class Rack::App::Router::Dynamic < Rack::App::Router::Base
145
141
  last_mounted_app = (current_cluster || {})[MOUNTED_APPLICATION] || last_mounted_app
146
142
 
147
143
  if current_cluster.nil?
144
+
145
+
148
146
  if last_mounted_directory
149
147
  current_cluster = last_mounted_directory
150
148
  break
@@ -161,8 +159,12 @@ class Rack::App::Router::Dynamic < Rack::App::Router::Base
161
159
 
162
160
  end
163
161
 
164
- return current_cluster
162
+ return extract_app(current_cluster) || extract_app(last_mounted_app) || extract_app(last_mounted_directory)
163
+
164
+ end
165
165
 
166
+ def extract_app(hash)
167
+ hash.is_a?(Hash) ? hash[:app] : nil
166
168
  end
167
169
 
168
170
  end
@@ -12,16 +12,17 @@ module Rack::App::Test
12
12
 
13
13
  attr_reader :last_response
14
14
 
15
- Rack::App::Constants::HTTP::METHODS.each do |request_method_type|
16
- request_method = request_method_type.to_s.downcase
17
- define_method(request_method) do |*args|
18
-
19
- properties = args.select { |e| e.is_a?(Hash) }.reduce({}, &:merge!)
20
- url = args.select { |e| e.is_a?(String) }.first || properties.delete(:url)
21
- mock_request = Rack::MockRequest.new(rack_app)
22
- request_env = Rack::App::Test::Utils.env_by(properties)
23
- return @last_response = mock_request.request(request_method, url, request_env)
15
+ def __send_rack_app_request__(request_method, *args)
16
+ properties = args.select { |e| e.is_a?(Hash) }.reduce({}, &:merge!)
17
+ url = args.select { |e| e.is_a?(String) }.first || properties.delete(:url)
18
+ mock_request = Rack::MockRequest.new(rack_app)
19
+ request_env = Rack::App::Test::Utils.env_by(properties)
20
+ return @last_response = mock_request.request(request_method.to_s.upcase, url, request_env)
21
+ end
24
22
 
23
+ Rack::App::Constants::HTTP::METHODS.each do |request_method_type|
24
+ define_method(request_method_type.to_s.downcase) do |*args|
25
+ self.__send_rack_app_request__(request_method_type, *args)
25
26
  end
26
27
  end
27
28
 
@@ -34,7 +35,7 @@ module Rack::App::Test
34
35
  else
35
36
  raise('missing class definition')
36
37
  end
37
- end.call
38
+ end.call
38
39
  block.is_a?(Proc) ? @rack_app.instance_exec(&block) : @rack_app
39
40
  end
40
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.10.0
4
+ version: 5.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-20 00:00:00.000000000 Z
11
+ date: 2017-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler