grape-path-helpers 1.2.0 → 1.3.0
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/.gitlab-ci.yml +1 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +43 -32
- data/LICENSE.txt +2 -1
- data/README.md +12 -4
- data/grape-path-helpers.gemspec +1 -1
- data/lib/grape-path-helpers.rb +1 -1
- data/lib/grape-path-helpers/named_route_matcher.rb +2 -2
- data/lib/grape-path-helpers/route_displayer.rb +1 -1
- data/lib/grape-path-helpers/version.rb +1 -1
- data/spec/grape_path_helpers/all_routes_spec.rb +3 -3
- data/spec/grape_path_helpers/named_route_matcher_spec.rb +6 -6
- data/spec/support/api.rb +5 -5
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4d73093a0f054919e2ad15c91772f4e7efac0ce0197d49d3be5ad5175df80a98
|
|
4
|
+
data.tar.gz: a1e486c0b0c076edc6c6bc5411184c97fbd2e5e861b83747e1d273faffdf0ba3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5491f91f2177f6ee3ba5575255a1e693dd6edae69da9a1733a5479e8a2478007b2c07abe0f5d1ac8d01e234dfeae1f45c4ae1fcc3982bb23854a3da16f0def0a
|
|
7
|
+
data.tar.gz: f93f9038b288580fe66cc166993eb58dcfb1fa34cde384c49c03fde0d6f1c33961a6b98622a1ab16099dcd92a40b5217ecce965ba6c0649d80db4f5d276fd8fd
|
data/.gitlab-ci.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,48 +1,62 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
grape-path-helpers (1.0
|
|
5
|
-
activesupport
|
|
6
|
-
grape (~> 1.
|
|
4
|
+
grape-path-helpers (1.3.0)
|
|
5
|
+
activesupport
|
|
6
|
+
grape (~> 1.3)
|
|
7
7
|
rake (~> 12)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
activesupport (
|
|
12
|
+
activesupport (6.0.2.1)
|
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
14
|
i18n (>= 0.7, < 2)
|
|
15
15
|
minitest (~> 5.1)
|
|
16
16
|
tzinfo (~> 1.1)
|
|
17
|
+
zeitwerk (~> 2.2)
|
|
17
18
|
ast (2.4.0)
|
|
18
|
-
|
|
19
|
-
descendants_tracker (~> 0.0.4)
|
|
20
|
-
ice_nine (~> 0.11.0)
|
|
21
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
|
22
|
-
builder (3.2.3)
|
|
19
|
+
builder (3.2.4)
|
|
23
20
|
coderay (1.1.2)
|
|
24
|
-
|
|
25
|
-
descendants_tracker (~> 0.0.1)
|
|
26
|
-
concurrent-ruby (1.0.5)
|
|
27
|
-
descendants_tracker (0.0.4)
|
|
28
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
|
21
|
+
concurrent-ruby (1.1.6)
|
|
29
22
|
diff-lcs (1.3)
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
dry-configurable (0.11.3)
|
|
24
|
+
concurrent-ruby (~> 1.0)
|
|
25
|
+
dry-core (~> 0.4, >= 0.4.7)
|
|
26
|
+
dry-equalizer (~> 0.2)
|
|
27
|
+
dry-container (0.7.2)
|
|
28
|
+
concurrent-ruby (~> 1.0)
|
|
29
|
+
dry-configurable (~> 0.1, >= 0.1.3)
|
|
30
|
+
dry-core (0.4.9)
|
|
31
|
+
concurrent-ruby (~> 1.0)
|
|
32
|
+
dry-equalizer (0.3.0)
|
|
33
|
+
dry-inflector (0.2.0)
|
|
34
|
+
dry-logic (1.0.6)
|
|
35
|
+
concurrent-ruby (~> 1.0)
|
|
36
|
+
dry-core (~> 0.2)
|
|
37
|
+
dry-equalizer (~> 0.2)
|
|
38
|
+
dry-types (1.4.0)
|
|
39
|
+
concurrent-ruby (~> 1.0)
|
|
40
|
+
dry-container (~> 0.3)
|
|
41
|
+
dry-core (~> 0.4, >= 0.4.4)
|
|
42
|
+
dry-equalizer (~> 0.3)
|
|
43
|
+
dry-inflector (~> 0.1, >= 0.1.2)
|
|
44
|
+
dry-logic (~> 1.0, >= 1.0.2)
|
|
45
|
+
grape (1.3.1)
|
|
32
46
|
activesupport
|
|
33
47
|
builder
|
|
48
|
+
dry-types (>= 1.1)
|
|
34
49
|
mustermann-grape (~> 1.0.0)
|
|
35
50
|
rack (>= 1.3.0)
|
|
36
51
|
rack-accept
|
|
37
|
-
|
|
38
|
-
i18n (1.0.1)
|
|
52
|
+
i18n (1.8.2)
|
|
39
53
|
concurrent-ruby (~> 1.0)
|
|
40
|
-
ice_nine (0.11.2)
|
|
41
54
|
method_source (0.9.0)
|
|
42
|
-
minitest (5.
|
|
43
|
-
mustermann (1.
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
minitest (5.14.0)
|
|
56
|
+
mustermann (1.1.1)
|
|
57
|
+
ruby2_keywords (~> 0.0.1)
|
|
58
|
+
mustermann-grape (1.0.1)
|
|
59
|
+
mustermann (>= 1.0.0)
|
|
46
60
|
parallel (1.12.1)
|
|
47
61
|
parser (2.5.1.0)
|
|
48
62
|
ast (~> 2.4.0)
|
|
@@ -50,11 +64,11 @@ GEM
|
|
|
50
64
|
pry (0.11.3)
|
|
51
65
|
coderay (~> 1.1.0)
|
|
52
66
|
method_source (~> 0.9.0)
|
|
53
|
-
rack (2.
|
|
67
|
+
rack (2.2.2)
|
|
54
68
|
rack-accept (0.4.5)
|
|
55
69
|
rack (>= 0.4)
|
|
56
70
|
rainbow (3.0.0)
|
|
57
|
-
rake (12.3.
|
|
71
|
+
rake (12.3.3)
|
|
58
72
|
rspec (3.7.0)
|
|
59
73
|
rspec-core (~> 3.7.0)
|
|
60
74
|
rspec-expectations (~> 3.7.0)
|
|
@@ -76,15 +90,12 @@ GEM
|
|
|
76
90
|
ruby-progressbar (~> 1.7)
|
|
77
91
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
78
92
|
ruby-progressbar (1.9.0)
|
|
93
|
+
ruby2_keywords (0.0.2)
|
|
79
94
|
thread_safe (0.3.6)
|
|
80
|
-
tzinfo (1.2.
|
|
95
|
+
tzinfo (1.2.6)
|
|
81
96
|
thread_safe (~> 0.1)
|
|
82
97
|
unicode-display_width (1.3.3)
|
|
83
|
-
|
|
84
|
-
axiom-types (~> 0.1)
|
|
85
|
-
coercible (~> 1.0)
|
|
86
|
-
descendants_tracker (~> 0.0, >= 0.0.3)
|
|
87
|
-
equalizer (~> 0.0, >= 0.0.9)
|
|
98
|
+
zeitwerk (2.3.0)
|
|
88
99
|
|
|
89
100
|
PLATFORMS
|
|
90
101
|
ruby
|
|
@@ -96,4 +107,4 @@ DEPENDENCIES
|
|
|
96
107
|
rubocop (~> 0.56)
|
|
97
108
|
|
|
98
109
|
BUNDLED WITH
|
|
99
|
-
1.
|
|
110
|
+
1.17.3
|
data/LICENSE.txt
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2015 Harper Henn
|
|
3
|
+
Copyright (c) 2015,2016 Harper Henn
|
|
4
|
+
Copyright (c) 2018-2020 GitLab B.V.
|
|
4
5
|
|
|
5
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# grape-path-helpers
|
|
2
2
|
|
|
3
|
-
[](https://gitlab.com/gitlab-org/grape-path-helpers/commits/master)
|
|
4
4
|
|
|
5
5
|
Provides named route helpers for Grape APIs, similar to [Rails' route helpers](http://edgeguides.rubyonrails.org/routing.html#path-and-url-helpers).
|
|
6
6
|
|
|
7
|
-
**This is a fork and rename of [
|
|
7
|
+
**This is a fork and rename of [grape-route-helpers](https://github.com/reprah/grape-route-helpers). It [includes some fixes](CHANGELOG.md) needed for GitLab.**
|
|
8
8
|
|
|
9
9
|
### Installation
|
|
10
10
|
|
|
@@ -76,7 +76,7 @@ You can use helper methods in your REPL session by including a module:
|
|
|
76
76
|
Use the methods inside your Grape API actions. Given this example API:
|
|
77
77
|
|
|
78
78
|
```ruby
|
|
79
|
-
class ExampleAPI < Grape::API
|
|
79
|
+
class ExampleAPI < Grape::API::Instance
|
|
80
80
|
version 'v1'
|
|
81
81
|
prefix 'api'
|
|
82
82
|
format 'json'
|
|
@@ -127,7 +127,7 @@ api_v1_anything_path # => '/api/v1/*anything'
|
|
|
127
127
|
If you want to assign a custom helper name to a route, pass the `:as` option when creating your route in your API:
|
|
128
128
|
|
|
129
129
|
```ruby
|
|
130
|
-
class Base < Grape::API
|
|
130
|
+
class Base < Grape::API::Instance
|
|
131
131
|
get 'ping', as: 'is_the_server_running'
|
|
132
132
|
'pong'
|
|
133
133
|
end
|
|
@@ -169,6 +169,14 @@ end
|
|
|
169
169
|
|
|
170
170
|
6.) Create a new pull request
|
|
171
171
|
|
|
172
|
+
### Releasing
|
|
173
|
+
|
|
174
|
+
1. Update the [CHANGELOG](CHANGELOG.md).
|
|
175
|
+
2. Update the version in [lib/grape-path-helpers/version.rb](lib/grape-path-helpers/version.rb).
|
|
176
|
+
3. [Tag](https://gitlab.com/gitlab-org/grape-path-helpers/-/tags) the commit with the version number prefixed by 'v'.
|
|
177
|
+
4. Run `gem build grape-path-helpers` locally.
|
|
178
|
+
5. Run `gem push $new_file.gem` locally, where `$new_file` is the file generated by the step above.
|
|
179
|
+
|
|
172
180
|
### License
|
|
173
181
|
|
|
174
182
|
See LICENSE
|
data/grape-path-helpers.gemspec
CHANGED
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
|
|
|
12
12
|
gem.homepage = 'https://gitlab.com/gitlab-org/grape-path-helpers'
|
|
13
13
|
|
|
14
14
|
gem.add_runtime_dependency 'activesupport'
|
|
15
|
-
gem.add_runtime_dependency 'grape', '~> 1.
|
|
15
|
+
gem.add_runtime_dependency 'grape', '~> 1.3'
|
|
16
16
|
gem.add_runtime_dependency 'rake', '~> 12'
|
|
17
17
|
|
|
18
18
|
gem.add_development_dependency 'pry', '~> 0.11'
|
data/lib/grape-path-helpers.rb
CHANGED
|
@@ -12,5 +12,5 @@ module GrapePathHelpers
|
|
|
12
12
|
require 'grape-path-helpers/railtie' if defined?(Rails)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
Grape::API.extend GrapePathHelpers::AllRoutes
|
|
15
|
+
Grape::API::Instance.extend GrapePathHelpers::AllRoutes
|
|
16
16
|
Grape::Endpoint.send(:include, GrapePathHelpers::NamedRouteMatcher)
|
|
@@ -8,7 +8,7 @@ module GrapePathHelpers
|
|
|
8
8
|
|
|
9
9
|
segments = arguments.first || {}
|
|
10
10
|
|
|
11
|
-
route = Grape::API.decorated_routes.detect do |r|
|
|
11
|
+
route = Grape::API::Instance.decorated_routes.detect do |r|
|
|
12
12
|
route_match?(r, method_id, segments)
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -22,7 +22,7 @@ module GrapePathHelpers
|
|
|
22
22
|
def respond_to_missing?(method_name, _include_private = false)
|
|
23
23
|
return super unless method_name =~ /_path$/
|
|
24
24
|
|
|
25
|
-
Grape::API.decorated_routes.detect do |route|
|
|
25
|
+
Grape::API::Instance.decorated_routes.detect do |route|
|
|
26
26
|
return true if route.respond_to?(method_name)
|
|
27
27
|
end
|
|
28
28
|
|
|
@@ -3,7 +3,7 @@ module GrapePathHelpers
|
|
|
3
3
|
# and required arguments for every Grape::Route.
|
|
4
4
|
class RouteDisplayer
|
|
5
5
|
def route_attributes
|
|
6
|
-
Grape::API.decorated_routes.map do |route|
|
|
6
|
+
Grape::API::Instance.decorated_routes.map do |route|
|
|
7
7
|
{
|
|
8
8
|
route_path: route.route_path,
|
|
9
9
|
route_method: route.route_method,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe GrapePathHelpers::AllRoutes do
|
|
4
|
-
Grape::API.extend described_class
|
|
4
|
+
Grape::API::Instance.extend described_class
|
|
5
5
|
|
|
6
6
|
describe '#all_routes' do
|
|
7
7
|
context 'when API is mounted within another API' do
|
|
@@ -11,7 +11,7 @@ describe GrapePathHelpers::AllRoutes do
|
|
|
11
11
|
mounting_api
|
|
12
12
|
|
|
13
13
|
# A route is unique if no other route shares the same set of options
|
|
14
|
-
all_route_options = Grape::API.all_routes.map do |r|
|
|
14
|
+
all_route_options = Grape::API::Instance.all_routes.map do |r|
|
|
15
15
|
r.instance_variable_get(:@options).merge(path: r.path)
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -28,7 +28,7 @@ describe GrapePathHelpers::AllRoutes do
|
|
|
28
28
|
it 'returns all POST routes' do
|
|
29
29
|
expected_routes = Spec::Support::MultiplePostsAPI.routes.map(&:path)
|
|
30
30
|
|
|
31
|
-
all_routes = Grape::API.all_routes
|
|
31
|
+
all_routes = Grape::API::Instance.all_routes
|
|
32
32
|
expect(all_routes.map(&:path)).to include(*expected_routes)
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -5,7 +5,7 @@ describe GrapePathHelpers::NamedRouteMatcher do
|
|
|
5
5
|
include described_class
|
|
6
6
|
|
|
7
7
|
let(:routes) do
|
|
8
|
-
Grape::API.decorated_routes
|
|
8
|
+
Grape::API::Instance.decorated_routes
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
let(:ping_route) do
|
|
@@ -44,13 +44,13 @@ describe GrapePathHelpers::NamedRouteMatcher do
|
|
|
44
44
|
|
|
45
45
|
describe '#method_missing' do
|
|
46
46
|
it 'returns super method_missing if the method does not end with path' do
|
|
47
|
-
expect(Grape::API).not_to receive(:decorated_routes)
|
|
47
|
+
expect(Grape::API::Instance).not_to receive(:decorated_routes)
|
|
48
48
|
|
|
49
49
|
helper_class.test_method
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
it 'search for the route if the method ends with path' do
|
|
53
|
-
expect(Grape::API).to receive(:decorated_routes).and_call_original
|
|
53
|
+
expect(Grape::API::Instance).to receive(:decorated_routes).and_call_original # rubocop:disable Metrics/LineLength
|
|
54
54
|
|
|
55
55
|
helper_class.test_method_path
|
|
56
56
|
end
|
|
@@ -146,14 +146,14 @@ describe GrapePathHelpers::NamedRouteMatcher do
|
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
describe '#respond_to_missing?' do
|
|
149
|
-
it 'returns super if the method
|
|
150
|
-
expect(Grape::API).not_to receive(:decorated_routes)
|
|
149
|
+
it 'returns super if the method does not end with path' do
|
|
150
|
+
expect(Grape::API::Instance).not_to receive(:decorated_routes) # rubocop:disable Metrics/LineLength
|
|
151
151
|
|
|
152
152
|
expect(helper_class.send(:respond_to_missing?, :test)).to eq(false)
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
it 'search for the route if the method ends with path' do
|
|
156
|
-
expect(Grape::API).to receive(:decorated_routes).and_call_original
|
|
156
|
+
expect(Grape::API::Instance).to receive(:decorated_routes).and_call_original # rubocop:disable Metrics/LineLength
|
|
157
157
|
|
|
158
158
|
expect(helper_class.send(:respond_to_missing?, :test_path)).to eq(false)
|
|
159
159
|
end
|
data/spec/support/api.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Spec
|
|
2
2
|
module Support
|
|
3
3
|
# Test API
|
|
4
|
-
class API < Grape::API
|
|
4
|
+
class API < Grape::API::Instance
|
|
5
5
|
version 'v1'
|
|
6
6
|
prefix 'api'
|
|
7
7
|
format 'json'
|
|
@@ -48,7 +48,7 @@ module Spec
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
# API with more than one version
|
|
51
|
-
class APIWithMultipleVersions < Grape::API
|
|
51
|
+
class APIWithMultipleVersions < Grape::API::Instance
|
|
52
52
|
version %w[beta alpha v1]
|
|
53
53
|
|
|
54
54
|
get 'ping' do
|
|
@@ -57,13 +57,13 @@ module Spec
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
# API with another API mounted inside it
|
|
60
|
-
class MountedAPI < Grape::API
|
|
60
|
+
class MountedAPI < Grape::API::Instance
|
|
61
61
|
mount Spec::Support::API
|
|
62
62
|
mount Spec::Support::APIWithMultipleVersions
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
# API with a version that would be illegal as a method name
|
|
66
|
-
class APIWithIllegalVersion < Grape::API
|
|
66
|
+
class APIWithIllegalVersion < Grape::API::Instance
|
|
67
67
|
version 'beta-1'
|
|
68
68
|
|
|
69
69
|
get 'ping' do
|
|
@@ -72,7 +72,7 @@ module Spec
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# API with multiple POST routes
|
|
75
|
-
class MultiplePostsAPI < Grape::API
|
|
75
|
+
class MultiplePostsAPI < Grape::API::Instance
|
|
76
76
|
resource :hamlet do
|
|
77
77
|
post 'to_be' do
|
|
78
78
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: grape-path-helpers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Drew Blessing
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2020-
|
|
12
|
+
date: 2020-03-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -31,14 +31,14 @@ dependencies:
|
|
|
31
31
|
requirements:
|
|
32
32
|
- - "~>"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: '1.
|
|
34
|
+
version: '1.3'
|
|
35
35
|
type: :runtime
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
39
|
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: '1.
|
|
41
|
+
version: '1.3'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: rake
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|