chusaku 1.0.0 → 1.0.1

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: fcb89484056aea5e8df6216ee630a385e433aa1fe8e375f76dc1b9ec67a03792
4
- data.tar.gz: 377a1e400e828cd026a8dd75c2f1b592af71ce5a53c35d868fa3b173bc5357ba
3
+ metadata.gz: 8295890eb74a89ebc38a8651d4a5d5c8f87112a7336658e8dea1117d525a1a1a
4
+ data.tar.gz: 6cb5e53d089e0996c0b6b7e9e0b7128902fa60bc54c3f458d737e56e5c5a7a2c
5
5
  SHA512:
6
- metadata.gz: 4656041fd2672f6c1c9c5c641d8489a0744b9de679971553d4c99a12934a97ad269264e34001801b10e22773bc8e5589c45225a46f55c239030b8d2b999fc416
7
- data.tar.gz: f97fd735b824e51cf45ab1e33fd6e2862e6c53530e52cacd23b400087759bece2210111493190f36c60ef2bf673055d58fbd5a66c4dc6a69922638416f40cf14
6
+ metadata.gz: 885022690966e86943484029fc383572ea254487d18f4b9f43ac1fa225e99b5cfd75f8e7f1787929cf7bbccae872ce63149a260ec5c5ef00f8e1e61added54db
7
+ data.tar.gz: 2d6151abb44a539dbd662af25f8f961a21ec72c2bd012268eff9a749da4affbe02589f38036a3926dadb430340c6fa4d84a2ceff052e4c1ca1045723bd1b8600
@@ -98,11 +98,36 @@ module Chusaku
98
98
  def backfill_routes(routes)
99
99
  paths = {}
100
100
 
101
+ # Map paths to their verbs and names.
102
+ #
103
+ # Resulting hash looks like:
104
+ #
105
+ # ```ruby
106
+ # {
107
+ # "/users/:id" => {
108
+ # "GET" => "edit_user",
109
+ # "PATCH" => "edit_user"
110
+ # }
111
+ # }
112
+ # ````
101
113
  routes.each do |_controller, actions|
102
114
  actions.each do |_action, data|
103
115
  data.each do |datum|
104
- paths[datum[:path]] ||= datum[:name]
105
- datum[:name] ||= paths[datum[:path]]
116
+ paths[datum[:path]] ||= {}
117
+ paths[datum[:path]][datum[:verb]] ||= datum[:name]
118
+ end
119
+ end
120
+ end
121
+
122
+ # Backfill names for routes that don't have them.
123
+ #
124
+ # First try to match based on the path and verb. If that doesn't work,
125
+ # try to match based on the path alone.
126
+ routes.each do |_controller, actions|
127
+ actions.each do |_action, data|
128
+ data.each do |datum|
129
+ datum[:name] ||= paths.dig(datum[:path], datum[:verb])
130
+ datum[:name] ||= paths[datum[:path]]&.values&.compact&.first
106
131
  end
107
132
  end
108
133
  end
@@ -1,3 +1,3 @@
1
1
  module Chusaku
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chusaku
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nishiki Liu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-28 00:00:00.000000000 Z
11
+ date: 2023-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler