rest_framework 0.5.2 → 0.5.3

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: 6e9dae13c73c724a592cf7f9f99347eae18dcc4acd135e98bcaf5f8682ea01e3
4
- data.tar.gz: 52b5a7b3a0b3339987516e6ec2083c087b9387ceb13a2951523c339ee1509b2c
3
+ metadata.gz: 3a1ec41fbc6d06700c4eb62d33369bf489af800914e92c304465d698ef788886
4
+ data.tar.gz: cc12e9c7e80fd882360f33d00e3ba2dd0f9b415ca7464d1db748afc3c6eec01c
5
5
  SHA512:
6
- metadata.gz: 8c9d79bd771ab07ffbd25edcc9970a3cc4ab39dfe730330e4fd704737773f7381bc75fd3f6169a9a6c17653cd3853da45a56a46907b05be668b63f8e921ee482
7
- data.tar.gz: 9e5ec3f519a35f02f49d2fde38f3f793649361927e437bc243ff7eba5a38a8315c4557b001a4eb305aeec04e99fb91ea00727aa910e5f33496ea58d29ad28598
6
+ metadata.gz: 56eac9f7fa7fa5daeb33cbc2b594ac96ba3ca6e27faf2ca10da7aac0aa3508f2fdcf8252b3af35ca293b504630741b3323f0f0f87ad65cecd8b01baf89fdf09e
7
+ data.tar.gz: 3b46a24e428d32b431b189386beb6ed41e898fc22ac0a470718143d56d86a04ec9a5b26bbdebb73874aae9d4aa8bdc6349b25c485ad34a752d57defed067b95b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.5.3
@@ -1,4 +1,6 @@
1
1
  module RESTFramework::Utils
2
+ HTTP_METHOD_ORDERING = %w(GET POST PUT PATCH DELETE)
3
+
2
4
  # Helper to take extra_actions hash and convert to a consistent format:
3
5
  # `{paths:, methods:, kwargs:}`.
4
6
  def self.parse_extra_actions(extra_actions)
@@ -49,16 +51,20 @@ module RESTFramework::Utils
49
51
 
50
52
  # Return routes that match our current route subdomain/pattern, grouped by controller.
51
53
  return application_routes.routes.map { |r|
54
+ path = r.path.spec.to_s
52
55
  {
53
56
  verb: r.verb,
54
- path: r.path.spec.to_s,
57
+ path: path,
55
58
  action: r.defaults[:action].presence,
56
59
  controller: r.defaults[:controller].presence,
57
60
  subdomain: r.defaults[:subdomain].presence,
58
61
  route_app: r.app&.app&.inspect&.presence,
62
+ _levels: path.count("/"),
59
63
  }
60
64
  }.select { |r|
61
65
  r[:subdomain] == current_subdomain && r[:path].start_with?(current_pattern)
66
+ }.sort_by { |r|
67
+ [r[:_levels], r[:path], HTTP_METHOD_ORDERING.index(r[:verb]) || 99]
62
68
  }.group_by { |r| r[:controller] }
63
69
  end
64
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory N. Schmit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-09 00:00:00.000000000 Z
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails