grape-path-helpers 1.7.0 → 1.7.1
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +15 -21
- data/README.md +0 -4
- data/lib/grape-path-helpers/named_route_matcher.rb +9 -2
- data/lib/grape-path-helpers/route_displayer.rb +6 -1
- data/lib/grape-path-helpers/version.rb +1 -1
- data/spec/grape_path_helpers/named_route_matcher_spec.rb +15 -0
- data/spec/grape_path_helpers/route_displayer_spec.rb +18 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8df03144931341081ba2a02ba59cc45d6a74cc55a5d465d40cf8a333c5032ac1
|
4
|
+
data.tar.gz: 1a173198fadb720a0aa3a23632f2657ba24425fae84720dcf3703d3e8281fd71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 855800980e102dc069cac30f31f85d77e0e8681fdd312b1a0d574151b9331ebd34fbb1b7756c06cd0ca4602f865b6d585841eef0da1b38cacf9e3b117b964b4d
|
7
|
+
data.tar.gz: ddeb1c0471150615131ed8d2af3c7dfc2b5ad9254c9f6046d0dd43d2e589511935a13107bf59502df3d6f8f7d378bedfee8bc04025f2aaec17537e9c29ac798a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.7.1
|
4
|
+
|
5
|
+
* Fix undefined method error (https://gitlab.com/gitlab-org/grape-path-helpers/-/merge_requests/42)
|
6
|
+
|
3
7
|
## 1.7.0
|
4
8
|
|
5
9
|
* [Further improve performance of route matching](https://gitlab.com/gitlab-org/grape-path-helpers/-/merge_requests/38)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
grape-path-helpers (1.7.
|
4
|
+
grape-path-helpers (1.7.1)
|
5
5
|
activesupport
|
6
6
|
grape (~> 1.3)
|
7
7
|
rake (> 12)
|
@@ -10,26 +10,21 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activesupport (
|
13
|
+
activesupport (7.0.3.1)
|
14
14
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
15
15
|
i18n (>= 1.6, < 2)
|
16
16
|
minitest (>= 5.1)
|
17
17
|
tzinfo (~> 2.0)
|
18
|
-
zeitwerk (~> 2.3)
|
19
18
|
ast (2.4.0)
|
20
19
|
builder (3.2.4)
|
21
20
|
coderay (1.1.2)
|
22
|
-
concurrent-ruby (1.1.
|
21
|
+
concurrent-ruby (1.1.10)
|
23
22
|
diff-lcs (1.3)
|
24
|
-
dry-
|
23
|
+
dry-container (0.10.1)
|
25
24
|
concurrent-ruby (~> 1.0)
|
26
|
-
|
27
|
-
dry-container (0.7.2)
|
25
|
+
dry-core (0.8.1)
|
28
26
|
concurrent-ruby (~> 1.0)
|
29
|
-
|
30
|
-
dry-core (0.5.0)
|
31
|
-
concurrent-ruby (~> 1.0)
|
32
|
-
dry-inflector (0.2.0)
|
27
|
+
dry-inflector (0.3.0)
|
33
28
|
dry-logic (1.2.0)
|
34
29
|
concurrent-ruby (~> 1.0)
|
35
30
|
dry-core (~> 0.5, >= 0.5)
|
@@ -39,20 +34,20 @@ GEM
|
|
39
34
|
dry-core (~> 0.5, >= 0.5)
|
40
35
|
dry-inflector (~> 0.1, >= 0.1.2)
|
41
36
|
dry-logic (~> 1.0, >= 1.0.2)
|
42
|
-
grape (1.
|
37
|
+
grape (1.6.2)
|
43
38
|
activesupport
|
44
39
|
builder
|
45
40
|
dry-types (>= 1.1)
|
46
41
|
mustermann-grape (~> 1.0.0)
|
47
42
|
rack (>= 1.3.0)
|
48
43
|
rack-accept
|
49
|
-
i18n (1.
|
44
|
+
i18n (1.12.0)
|
50
45
|
concurrent-ruby (~> 1.0)
|
51
46
|
method_source (0.9.0)
|
52
|
-
minitest (5.
|
53
|
-
mustermann (
|
47
|
+
minitest (5.16.2)
|
48
|
+
mustermann (3.0.0)
|
54
49
|
ruby2_keywords (~> 0.0.1)
|
55
|
-
mustermann-grape (1.0.
|
50
|
+
mustermann-grape (1.0.2)
|
56
51
|
mustermann (>= 1.0.0)
|
57
52
|
parallel (1.12.1)
|
58
53
|
parser (2.5.1.0)
|
@@ -61,11 +56,11 @@ GEM
|
|
61
56
|
pry (0.11.3)
|
62
57
|
coderay (~> 1.1.0)
|
63
58
|
method_source (~> 0.9.0)
|
64
|
-
rack (2.2.
|
59
|
+
rack (2.2.4)
|
65
60
|
rack-accept (0.4.5)
|
66
61
|
rack (>= 0.4)
|
67
62
|
rainbow (3.0.0)
|
68
|
-
rake (13.0.
|
63
|
+
rake (13.0.6)
|
69
64
|
rspec (3.7.0)
|
70
65
|
rspec-core (~> 3.7.0)
|
71
66
|
rspec-expectations (~> 3.7.0)
|
@@ -87,11 +82,10 @@ GEM
|
|
87
82
|
ruby-progressbar (~> 1.7)
|
88
83
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
89
84
|
ruby-progressbar (1.9.0)
|
90
|
-
ruby2_keywords (0.0.
|
91
|
-
tzinfo (2.0.
|
85
|
+
ruby2_keywords (0.0.5)
|
86
|
+
tzinfo (2.0.5)
|
92
87
|
concurrent-ruby (~> 1.0)
|
93
88
|
unicode-display_width (1.3.3)
|
94
|
-
zeitwerk (2.4.2)
|
95
89
|
|
96
90
|
PLATFORMS
|
97
91
|
ruby
|
data/README.md
CHANGED
@@ -8,10 +8,6 @@ Provides named route helpers for Grape APIs, similar to [Rails' route helpers](h
|
|
8
8
|
|
9
9
|
### Installation
|
10
10
|
|
11
|
-
#### Compatibility with Grape
|
12
|
-
|
13
|
-
If you're using grape 0.16.0 or higher, you'll need version 2.0.0 or higher of grape-path-helpers.
|
14
|
-
|
15
11
|
#### Rails
|
16
12
|
|
17
13
|
p 1.) Add the gem to your Gemfile.
|
@@ -4,6 +4,8 @@ module GrapePathHelpers
|
|
4
4
|
# helper function name
|
5
5
|
module NamedRouteMatcher
|
6
6
|
def method_missing(method_name, *args)
|
7
|
+
return super unless method_name.end_with?('_path')
|
8
|
+
|
7
9
|
possible_routes = Grape::API::Instance
|
8
10
|
.decorated_routes_by_helper_name[method_name]
|
9
11
|
return super unless possible_routes
|
@@ -26,8 +28,13 @@ module GrapePathHelpers
|
|
26
28
|
ruby2_keywords(:method_missing)
|
27
29
|
|
28
30
|
def respond_to_missing?(method_name, _include_private = false)
|
29
|
-
|
30
|
-
|
31
|
+
grape_route_path?(method_name) || super
|
32
|
+
end
|
33
|
+
|
34
|
+
def grape_route_path?(method_name)
|
35
|
+
method_name.end_with?('_path') &&
|
36
|
+
!Grape::API::Instance
|
37
|
+
.decorated_routes_by_helper_name[method_name].nil?
|
31
38
|
end
|
32
39
|
end
|
33
40
|
end
|
@@ -3,7 +3,12 @@ module GrapePathHelpers
|
|
3
3
|
# and required arguments for every Grape::Route.
|
4
4
|
class RouteDisplayer
|
5
5
|
def route_attributes
|
6
|
-
Grape::API::Instance
|
6
|
+
Grape::API::Instance
|
7
|
+
.decorated_routes_by_helper_name
|
8
|
+
.values
|
9
|
+
.flatten
|
10
|
+
.uniq
|
11
|
+
.map do |route|
|
7
12
|
{
|
8
13
|
route_path: route.route_path,
|
9
14
|
route_method: route.route_method,
|
@@ -60,6 +60,21 @@ describe GrapePathHelpers::NamedRouteMatcher do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
describe '#respond_to_missing?' do
|
63
|
+
context 'when method name doesnt end with _path suffix' do
|
64
|
+
let(:method_name) { :api_v1_cats }
|
65
|
+
|
66
|
+
it 'returns false' do
|
67
|
+
expect(respond_to_missing?(method_name)).to eq(false)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'doesnt execute decorated_routes_by_helper_name method' do
|
71
|
+
expect(Grape::API::Instance)
|
72
|
+
.not_to receive(:decorated_routes_by_helper_name)
|
73
|
+
|
74
|
+
respond_to_missing?(method_name)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
63
78
|
context 'when method name matches a Grape::Route path with segments' do
|
64
79
|
let(:method_name) { :api_v1_cats_path }
|
65
80
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GrapePathHelpers::RouteDisplayer do
|
4
|
+
subject(:route_displayer) { described_class.new }
|
5
|
+
|
6
|
+
describe '#route_attributes' do
|
7
|
+
subject { route_displayer.route_attributes }
|
8
|
+
|
9
|
+
it 'returns the list of attributes' do
|
10
|
+
is_expected.to include(a_hash_including(
|
11
|
+
route_path: '/:version/ping(.:format)',
|
12
|
+
route_method: 'GET',
|
13
|
+
helper_names: ['beta_1_ping_path'],
|
14
|
+
helper_arguments: []
|
15
|
+
))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-path-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Drew Blessing
|
8
8
|
- Harper Henn
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -140,13 +140,14 @@ files:
|
|
140
140
|
- spec/grape_path_helpers/all_routes_spec.rb
|
141
141
|
- spec/grape_path_helpers/decorated_route_spec.rb
|
142
142
|
- spec/grape_path_helpers/named_route_matcher_spec.rb
|
143
|
+
- spec/grape_path_helpers/route_displayer_spec.rb
|
143
144
|
- spec/spec_helper.rb
|
144
145
|
- spec/support/api.rb
|
145
146
|
homepage: https://gitlab.com/gitlab-org/grape-path-helpers
|
146
147
|
licenses:
|
147
148
|
- MIT
|
148
149
|
metadata: {}
|
149
|
-
post_install_message:
|
150
|
+
post_install_message:
|
150
151
|
rdoc_options: []
|
151
152
|
require_paths:
|
152
153
|
- lib
|
@@ -161,8 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
162
|
- !ruby/object:Gem::Version
|
162
163
|
version: '0'
|
163
164
|
requirements: []
|
164
|
-
rubygems_version: 3.
|
165
|
-
signing_key:
|
165
|
+
rubygems_version: 3.3.19
|
166
|
+
signing_key:
|
166
167
|
specification_version: 4
|
167
168
|
summary: Route path helpers for Grape
|
168
169
|
test_files: []
|