rack-app 6.7.1 → 6.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8f42d76eb784f1a62d8af4bf06aa1ea66108e01
4
- data.tar.gz: 800d10c46212b0b5dcfef10c2068e6c67ec1bfb2
3
+ metadata.gz: 918146f8853c3deef7b9f56e1b01c5200e47f938
4
+ data.tar.gz: aafdf76c3b3f8346d3479dd97baeda137a50b112
5
5
  SHA512:
6
- metadata.gz: 4398c1e9cfcc26857bec44f10065c6203aa4073c27184b5d3c04db3a3518662e7dae4726a7a542ce2fabe0ac9b90cbf35de6d137ea3cd0877df4b2b9fe55c281
7
- data.tar.gz: 14d8f55f13638c6edbc546069961edd3b07d87aeeda6ecf5abc02b0bc4ba8ea610f4edebef7d392c0761fb4c7091c837ec719026dde6bf44aa3fd7de5349077d
6
+ metadata.gz: bfe4cd8db4e9b6753b402676f3a0f04f7a0377803b60d6bb1b08187e26754d397766766606704a19c492075f748a1fb573be521f92e64134a147ca808b9416de
7
+ data.tar.gz: 23d411aaed8a51cd0b0f34673f06718828c10b50929b3c05ac790d367c5fc258ec51c348b3739bd6372a9492b692c9f2f46ce9c1b241aa02d73ac668bf2658f0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.7.1
1
+ 6.8.0
@@ -24,7 +24,7 @@ class Rack::App::Endpoint::Builder
24
24
  end
25
25
 
26
26
  def apply_middleware_build_blocks(builder)
27
- builder_blocks.each do |builder_block|
27
+ @config.middlewares.each do |builder_block|
28
28
  builder_block.call(builder)
29
29
  end
30
30
  builder.use(Rack::App::Middlewares::Configuration, @config)
@@ -43,8 +43,4 @@ class Rack::App::Endpoint::Builder
43
43
  builder.use(Rack::App::Middlewares::Hooks::After, after_block)
44
44
  end
45
45
  end
46
-
47
- def builder_blocks
48
- [@config.app_class.middlewares, @config.endpoint_specific_middlewares].flatten
49
- end
50
46
  end
@@ -27,8 +27,21 @@ class Rack::App::Endpoint::Config
27
27
  @raw[:payload].parser_builder
28
28
  end
29
29
 
30
+ def ancestor_apps
31
+ [@raw[:ancestors]].flatten.compact
32
+ end
33
+
30
34
  def app_class
31
- @raw[:app_class] || raise('missing app class')
35
+ ancestor_apps.first || raise('missing app class')
36
+ end
37
+
38
+ def middlewares
39
+ mws = []
40
+ ancestor_apps.reverse_each do |ancestors_app|
41
+ mws.push(*ancestors_app.middlewares)
42
+ end
43
+ mws.push(*endpoint_specific_middlewares)
44
+ return mws
32
45
  end
33
46
 
34
47
  def serializer
@@ -79,12 +92,6 @@ class Rack::App::Endpoint::Config
79
92
  @raw = raw
80
93
  end
81
94
 
82
- def register_method_to_app_class
83
- method_name = '__' + ::Rack::App::Utils.uuid
84
- app_class.__send__(:define_method, method_name, &logic_block)
85
- method_name
86
- end
87
-
88
95
  def logic_block
89
96
  @raw[:user_defined_logic]
90
97
  end
@@ -38,7 +38,8 @@ class Rack::App::Router
38
38
  raise(ArgumentError, 'invalid router object, must implement :endpoints interface') unless router.respond_to?(:endpoints)
39
39
  router.endpoints.each do |endpoint|
40
40
  new_request_path = ::Rack::App::Utils.join(prop[:namespaces], endpoint.request_path)
41
- new_endpoint = endpoint.fork(:request_path => new_request_path)
41
+ new_ancestors = endpoint.config.ancestor_apps + [prop[:new_ancestor]]
42
+ new_endpoint = endpoint.fork(:request_path => new_request_path, :ancestors => new_ancestors)
42
43
  register_endpoint!(new_endpoint)
43
44
  end
44
45
  nil
@@ -20,7 +20,12 @@ module Rack::App::SingletonMethods::Mounting
20
20
  end
21
21
 
22
22
  cli.merge!(app.cli)
23
- merge_prop = {:namespaces => [@namespaces, options[:to]].flatten}
23
+
24
+ merge_prop = {
25
+ :namespaces => [@namespaces, options[:to]].flatten,
26
+ :new_ancestor => self
27
+ }
28
+
24
29
  router.merge_router!(app.router, merge_prop)
25
30
 
26
31
  nil
@@ -1,5 +1,4 @@
1
1
  module Rack::App::SingletonMethods::RouteHandling
2
-
3
2
  def router
4
3
  @router ||= Rack::App::Router.new
5
4
  end
@@ -15,30 +14,26 @@ module Rack::App::SingletonMethods::RouteHandling
15
14
  end
16
15
 
17
16
  def description(*description_texts)
18
- route_registration_properties[:description]= description_texts.join("\n")
17
+ route_registration_properties[:description] = description_texts.join("\n")
19
18
  end
20
19
 
21
20
  alias desc description
22
21
 
23
22
  def add_route(request_method, request_path, callable)
24
-
25
23
  router.register_endpoint!(
26
- Rack::App::Endpoint.new({
27
- :app_class => self,
28
- :callable => callable,
29
- :payload => payload,
30
- :error_handler => error,
31
- :request_method => request_method,
32
- :route => route_registration_properties.dup,
33
- :endpoint_specific_middlewares => next_endpoint_middlewares.dup,
34
- :request_path => ::Rack::App::Utils.join(namespace, request_path)
35
- })
24
+ Rack::App::Endpoint.new(:ancestors => [self],
25
+ :callable => callable,
26
+ :payload => payload,
27
+ :error_handler => error,
28
+ :request_method => request_method,
29
+ :route => route_registration_properties.dup,
30
+ :endpoint_specific_middlewares => next_endpoint_middlewares.dup,
31
+ :request_path => ::Rack::App::Utils.join(namespace, request_path))
36
32
  )
37
33
 
38
34
  next_endpoint_middlewares.clear
39
35
  route_registration_properties.clear
40
- return nil
41
-
36
+ nil
42
37
  end
43
38
 
44
39
  def namespace(*namespace_paths)
@@ -48,5 +43,4 @@ module Rack::App::SingletonMethods::RouteHandling
48
43
  @namespaces.pop
49
44
  ::Rack::App::Utils.join(@namespaces.flatten)
50
45
  end
51
-
52
46
  end
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: 6.7.1
4
+ version: 6.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-09 00:00:00.000000000 Z
11
+ date: 2017-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler