rack-http_router 0.0.2 → 0.0.32

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
  SHA256:
3
- metadata.gz: d1811e5ddf758cfb0143f7f2f2f00c5fb6336f87e2fe5ac31e34c1180a336357
4
- data.tar.gz: ad18c72cc4ae6c98a0437d51b628e0e1989b7ab2f00d9ace40a057f1d4f68321
3
+ metadata.gz: b8cff48c0ee5cfa89a5de1274be3303220345822527d05a090be207148a8b9b5
4
+ data.tar.gz: 60aa48e2d132770c406419b713582b0c7f88a5d833fbc48763a29ed8d58989b0
5
5
  SHA512:
6
- metadata.gz: a6793d7c6968f766e12ed581e533416ce2eb9227ae697cb14eea469a499aba8d5b949ef5434c0be48cd557973694deed9cdb26bc71fcac2099f443586b40d986
7
- data.tar.gz: 8a2a16819fa8842252a74c5d12f3f36c4475f0f3a13c348c4da83bd8715540852fb419c8fef9716f1aab281d54bb2f239d30ec22fb045843db13a759bba1e253
6
+ metadata.gz: 26edd2abbaff17cab89906192014d14e151aca4edd6f6cd7f81d8e8e2ed674d129e728ccdd87ff8e7557ba88ae1323084dca434b8fd06643f501a476cf9a46fc
7
+ data.tar.gz: 6ce7a9c0fd92aaa12e9a7065c28594b20ac9af89634e34cef962b421ae4c702863c917ce1154c55f0854e4e0108ec2bdc52ef40ee6d00d66f923a4406fc60aca
@@ -9,10 +9,12 @@ module Rack
9
9
  module Action
10
10
  def self.included(base)
11
11
  base.class_eval do
12
- attr_reader :route if self != Rack::HttpRouter
12
+ attr_reader :route, :config, :db if self != Rack::HttpRouter
13
13
 
14
- def initialize(route)
14
+ def initialize(route: nil, config: nil)
15
15
  @route = route
16
+ @config = config
17
+ @db = config[:db]
16
18
  end
17
19
 
18
20
  def view_response(a_path, a_view_params = {}, status: 200)
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require_relative 'router/route'
4
2
  require_relative 'router/build_request'
5
3
 
@@ -9,16 +7,18 @@ module Rack
9
7
  class UndefinedNamedRoute < StandardError; end
10
8
 
11
9
  attr_writer :not_found
12
- attr_reader :route
10
+ attr_reader :route, :config
13
11
 
14
- def initialize
12
+ def initialize(config = {})
15
13
  @routes = {}
16
14
  %w[GET POST DELETE PUT TRACE OPTIONS PATCH].each do |method|
17
15
  @routes[method] = { __instances: [] }
18
16
  end
19
- @route = Hash.new do |_hash, key|
20
- raise(UndefinedNamedRoute, "Undefined named route: '#{key}'")
21
- end
17
+ @route =
18
+ Hash.new do |_hash, key|
19
+ raise(UndefinedNamedRoute, "Undefined named route: '#{key}'")
20
+ end
21
+ @config = config
22
22
  @scopes = []
23
23
  @error = proc { |_req, e| raise e }
24
24
  @not_found = proc { [404, {}, ['Not found']] }
@@ -33,11 +33,14 @@ module Rack
33
33
  return render_not_found(request_builder.call) if route_instance.nil?
34
34
 
35
35
  if route_instance.endpoint.respond_to?(:call)
36
- return route_instance.endpoint.call(request_builder.call(route_instance))
36
+ return route_instance.endpoint.call(
37
+ request_builder.call(route_instance)
38
+ )
37
39
  end
38
40
 
39
41
  if route_instance.endpoint.include?(Rack::HttpRouter::Action)
40
- return route_instance.endpoint.new(@route).call(request_builder.call(route_instance))
42
+ return route_instance.endpoint.new(route: @route, config: @config)
43
+ .call(request_builder.call(route_instance))
41
44
  end
42
45
 
43
46
  route_instance.endpoint.new.call(request_builder.call(route_instance))
@@ -53,7 +56,9 @@ module Rack
53
56
 
54
57
  route_instance = Route.new(path_with_scopes, endpoint)
55
58
 
56
- return push_to_scope(method.to_s.upcase, route_instance) if @scopes.size >= 1
59
+ if @scopes.size >= 1
60
+ return push_to_scope(method.to_s.upcase, route_instance)
61
+ end
57
62
 
58
63
  @routes[method.to_s.upcase][:__instances].push(route_instance)
59
64
  end
@@ -77,7 +82,7 @@ module Rack
77
82
  private
78
83
 
79
84
  def push_to_scope(method, route_instance)
80
- scopes_with_slash = @scopes + [:__instances]
85
+ scopes_with_slash = @scopes + %i[__instances]
81
86
  push_it(@routes[method], *scopes_with_slash, route_instance)
82
87
  end
83
88
 
@@ -125,9 +130,10 @@ module Rack
125
130
  end
126
131
 
127
132
  if tail.empty? || found_scopes == []
128
- return @routes[env['REQUEST_METHOD']].dig(*(found_scopes << :__instances)).detect do |route_instance|
129
- route_instance.match?(env)
130
- end
133
+ return @routes[env['REQUEST_METHOD']].dig(
134
+ *(found_scopes << :__instances)
135
+ )
136
+ .detect { |route_instance| route_instance.match?(env) }
131
137
  end
132
138
 
133
139
  match_route(env, tail, found_scopes)
@@ -7,8 +7,8 @@ module Rack
7
7
  class HttpRouter
8
8
  include Action
9
9
 
10
- def initialize(router: Router.new)
11
- @router = router
10
+ def initialize(config = {})
11
+ @router = Router.new(config)
12
12
  end
13
13
 
14
14
  def call(&block)
@@ -21,6 +21,14 @@ module Rack
21
21
  @router.route
22
22
  end
23
23
 
24
+ def config
25
+ @router.config
26
+ end
27
+
28
+ def db
29
+ @router.config[:db]
30
+ end
31
+
24
32
  def scope(name, &block)
25
33
  @router.append_scope(name)
26
34
  instance_eval(&block)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-http_router
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique F. Teixeira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-22 00:00:00.000000000 Z
11
+ date: 2023-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erubi