rack-http_router 0.0.2 → 0.0.32

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
  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