rest-api-generator 0.1.4 → 0.1.6
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/Gemfile.lock +16 -5
- data/README.md +21 -0
- data/{lib → app/controllers}/rest_api_generator/child_resource_controller.rb +1 -1
- data/{lib → app/controllers}/rest_api_generator/resource_controller.rb +1 -1
- data/lib/generators/rest_api_generator/helpers.rb +2 -1
- data/lib/generators/rest_api_generator/spec/rswag_generator.rb +1 -1
- data/lib/rest_api_generator/config.rb +15 -0
- data/lib/rest_api_generator/rails.rb +6 -0
- data/lib/rest_api_generator/version.rb +1 -1
- data/lib/rest_api_generator.rb +8 -5
- data/rest-api-generator.gemspec +8 -2
- metadata +22 -6
- /data/{lib → app/controllers}/rest_api_generator/application_controller.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2856805f0d16c6778be959778e29681c2e6ce306d9b3699e6e766da7f605948b
|
4
|
+
data.tar.gz: f9ffabaa5ee380f54ab19a8ad88ddd58de27ee968e44e4ad64794d0110b6979f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e92f35591532264731ac9acd69117082954c1ac342a89f298d40c60a11dfee9b02b9f2bc5f9e75251ced9937929d900bbfc8491a00b070220bed04c73f81f014
|
7
|
+
data.tar.gz: 5914b7f9b6eb86efbf11ffb1497db57fa9ffec03ce9d4978cfae19e3d6425c52b5ab2fdc564c7baf3ec5acad478ec9d86cbccef19be253389176aee8bb7a2a3c
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rest-api-generator (0.1.
|
4
|
+
rest-api-generator (0.1.5)
|
5
|
+
anyway_config (>= 2.0.0)
|
5
6
|
rails (>= 5.0)
|
6
7
|
|
7
8
|
GEM
|
@@ -78,6 +79,8 @@ GEM
|
|
78
79
|
activesupport (>= 3.0)
|
79
80
|
railties (>= 3.0)
|
80
81
|
rspec-rails (>= 2.2)
|
82
|
+
anyway_config (2.4.0)
|
83
|
+
ruby-next-core (>= 0.14.0)
|
81
84
|
ast (2.4.2)
|
82
85
|
builder (3.2.4)
|
83
86
|
concurrent-ruby (1.1.10)
|
@@ -91,7 +94,7 @@ GEM
|
|
91
94
|
date (3.3.3)
|
92
95
|
diff-lcs (1.5.0)
|
93
96
|
erubi (1.12.0)
|
94
|
-
globalid (1.
|
97
|
+
globalid (1.1.0)
|
95
98
|
activesupport (>= 5.0)
|
96
99
|
i18n (1.12.0)
|
97
100
|
concurrent-ruby (~> 1.0)
|
@@ -101,7 +104,7 @@ GEM
|
|
101
104
|
loofah (2.19.1)
|
102
105
|
crass (~> 1.0.2)
|
103
106
|
nokogiri (>= 1.5.9)
|
104
|
-
mail (2.8.
|
107
|
+
mail (2.8.1)
|
105
108
|
mini_mime (>= 0.1.1)
|
106
109
|
net-imap
|
107
110
|
net-pop
|
@@ -109,6 +112,7 @@ GEM
|
|
109
112
|
marcel (1.0.2)
|
110
113
|
method_source (1.0.0)
|
111
114
|
mini_mime (1.1.2)
|
115
|
+
mini_portile2 (2.8.1)
|
112
116
|
minitest (5.16.3)
|
113
117
|
net-imap (0.3.4)
|
114
118
|
date
|
@@ -119,7 +123,10 @@ GEM
|
|
119
123
|
timeout
|
120
124
|
net-smtp (0.3.3)
|
121
125
|
net-protocol
|
122
|
-
nio4r (2.5.
|
126
|
+
nio4r (2.5.9)
|
127
|
+
nokogiri (1.13.10)
|
128
|
+
mini_portile2 (~> 2.8.0)
|
129
|
+
racc (~> 1.4)
|
123
130
|
nokogiri (1.13.10-x86_64-linux)
|
124
131
|
racc (~> 1.4)
|
125
132
|
parallel (1.22.1)
|
@@ -218,7 +225,10 @@ GEM
|
|
218
225
|
rubocop (~> 1.33)
|
219
226
|
rubocop-shopify (2.10.1)
|
220
227
|
rubocop (~> 1.35)
|
228
|
+
ruby-next-core (0.15.3)
|
221
229
|
ruby-progressbar (1.11.0)
|
230
|
+
sqlite3 (1.5.4)
|
231
|
+
mini_portile2 (~> 2.8.0)
|
222
232
|
sqlite3 (1.5.4-x86_64-linux)
|
223
233
|
switchcop (0.1.2)
|
224
234
|
rubocop (~> 1.40.0)
|
@@ -227,7 +237,7 @@ GEM
|
|
227
237
|
rubocop-rspec (~> 2.16.0)
|
228
238
|
rubocop-shopify (~> 2.10.1)
|
229
239
|
thor (1.2.1)
|
230
|
-
timeout (0.3.
|
240
|
+
timeout (0.3.2)
|
231
241
|
tzinfo (2.0.5)
|
232
242
|
concurrent-ruby (~> 1.0)
|
233
243
|
unicode-display_width (2.3.0)
|
@@ -237,6 +247,7 @@ GEM
|
|
237
247
|
zeitwerk (2.6.6)
|
238
248
|
|
239
249
|
PLATFORMS
|
250
|
+
ruby
|
240
251
|
x86_64-linux
|
241
252
|
|
242
253
|
DEPENDENCIES
|
data/README.md
CHANGED
@@ -24,6 +24,7 @@ Following [Switch Dreams's](https://www.switchdreams.com.br/]) coding practices,
|
|
24
24
|
- :memo: [Automated documentation](#specsdocs)
|
25
25
|
- [Resource ordering](#ordering)
|
26
26
|
- [Resource filter](#filtering)
|
27
|
+
- [Configurable](#configuration)
|
27
28
|
|
28
29
|
## Next Features
|
29
30
|
|
@@ -243,6 +244,12 @@ This spec options work as generators too, so you can call them individually:
|
|
243
244
|
rails g rest_api_generator:spec:rswag Car name:string color:string
|
244
245
|
```
|
245
246
|
|
247
|
+
#### Configuration for specs
|
248
|
+
|
249
|
+
By default, the plain rspec and rswag specs are going to be generated in the _spec/requests_ and _spec/docs_
|
250
|
+
directories, respectively. You can override using the (config options)[#configuration]]. :
|
251
|
+
|
252
|
+
|
246
253
|
### Resource Features
|
247
254
|
|
248
255
|
#### Modular Error Handler
|
@@ -287,6 +294,20 @@ And It's done, you can filter your index end-point:
|
|
287
294
|
|
288
295
|
- `GET /cars?color=blue or GET /cars?color=red&name=Ferrari`
|
289
296
|
|
297
|
+
## Configuration
|
298
|
+
|
299
|
+
You can override this gem configuration using the initializer or any other method from [anyway_config](https://github.com/palkan/anyway_config):
|
300
|
+
|
301
|
+
```rb
|
302
|
+
# config/initializers/rest_api_generator.rb
|
303
|
+
|
304
|
+
RestApiGenerator.configure do |config|
|
305
|
+
config.test_path = "custom_test_dir/requests" # default: spec/requests
|
306
|
+
config.docs_path = "custom_docs_dir/rswag" # default: spec/docs
|
307
|
+
config.parent_class = "ApplicationController" # default: RestApiGenerator::ResourceController
|
308
|
+
end
|
309
|
+
```
|
310
|
+
|
290
311
|
## Development
|
291
312
|
|
292
313
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RestApiGenerator
|
4
|
-
class ChildResourceController < RestApiGenerator.parent_controller.constantize
|
4
|
+
class ChildResourceController < RestApiGenerator.configuration.parent_controller.constantize
|
5
5
|
include Orderable
|
6
6
|
|
7
7
|
before_action :set_parent_resource
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RestApiGenerator
|
4
|
-
class ResourceController < RestApiGenerator.parent_controller.constantize
|
4
|
+
class ResourceController < RestApiGenerator.configuration.parent_controller.constantize
|
5
5
|
include Orderable
|
6
6
|
|
7
7
|
before_action :set_resource, only: [:show, :update, :destroy]
|
@@ -5,7 +5,8 @@ module RestApiGenerator
|
|
5
5
|
attr_accessor :options, :attributes
|
6
6
|
|
7
7
|
API_CONTROLLER_DIR_PATH = "app/controllers"
|
8
|
-
API_TEST_DIR_PATH =
|
8
|
+
API_TEST_DIR_PATH = RestApiGenerator.configuration.test_path
|
9
|
+
API_DOCS_DIR_PATH = RestApiGenerator.configuration.docs_path
|
9
10
|
|
10
11
|
private
|
11
12
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "anyway_config"
|
4
|
+
|
5
|
+
Anyway::Settings.default_config_path = ->(_name) { Rails.root ? Rails.root.join("config/rest_api_generator.yml") : "" }
|
6
|
+
|
7
|
+
module RestApiGenerator
|
8
|
+
class Config < Anyway::Config
|
9
|
+
config_name :rest_api_generator
|
10
|
+
|
11
|
+
attr_config test_path: "spec/requests",
|
12
|
+
docs_path: "spec/docs",
|
13
|
+
parent_controller: "RestApiGenerator::ApplicationController"
|
14
|
+
end
|
15
|
+
end
|
data/lib/rest_api_generator.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
require "rails"
|
4
4
|
require_relative "rest_api_generator/version"
|
5
|
-
require_relative "rest_api_generator/application_controller"
|
6
5
|
require_relative "rest_api_generator/error_handler"
|
6
|
+
require_relative "rest_api_generator/config"
|
7
7
|
require_relative "rest_api_generator/custom_error"
|
8
8
|
require_relative "rest_api_generator/helpers/render"
|
9
9
|
require_relative "rest_api_generator/filterable"
|
@@ -12,10 +12,13 @@ require_relative "rest_api_generator/orderable"
|
|
12
12
|
module RestApiGenerator
|
13
13
|
class Error < StandardError; end
|
14
14
|
|
15
|
-
def self.
|
16
|
-
|
15
|
+
def self.configuration
|
16
|
+
@config ||= Config.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.configure
|
20
|
+
yield(configuration) if block_given?
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
|
-
|
21
|
-
require_relative "rest_api_generator/child_resource_controller"
|
24
|
+
require "rest_api_generator/rails" if defined?(Rails)
|
data/rest-api-generator.gemspec
CHANGED
@@ -22,8 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.metadata["source_code_uri"] = "https://github.com/SwitchDreams/rest-api-generator"
|
23
23
|
spec.metadata["changelog_uri"] = "https://github.com/SwitchDreams/rest-api-generator"
|
24
24
|
|
25
|
-
spec.files = Dir["{bin,sig,lib,public}/**/*",
|
26
|
-
"
|
25
|
+
spec.files = Dir["{bin,sig,lib,public,app}/**/*",
|
26
|
+
"MIT-LICENSE",
|
27
|
+
"Rakefile",
|
28
|
+
"README.md",
|
29
|
+
"rest-api-generator.gemspec",
|
30
|
+
"Gemfile",
|
31
|
+
"Gemfile.lock"]
|
27
32
|
spec.bindir = "exe"
|
28
33
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
29
34
|
spec.require_paths = ["lib"]
|
@@ -32,6 +37,7 @@ Gem::Specification.new do |spec|
|
|
32
37
|
# guide at: https://bundler.io/guides/creating_gem.html
|
33
38
|
spec.metadata["rubygems_mfa_required"] = "true"
|
34
39
|
|
40
|
+
spec.add_dependency "anyway_config", ">= 2.0.0"
|
35
41
|
spec.add_dependency "rails", ">= 5.0"
|
36
42
|
|
37
43
|
spec.add_development_dependency "ammeter", "~> 1.1.5"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-api-generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PedroAugustoRamalhoDuarte
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: anyway_config
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.0
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rails
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +120,9 @@ files:
|
|
106
120
|
- Gemfile.lock
|
107
121
|
- README.md
|
108
122
|
- Rakefile
|
123
|
+
- app/controllers/rest_api_generator/application_controller.rb
|
124
|
+
- app/controllers/rest_api_generator/child_resource_controller.rb
|
125
|
+
- app/controllers/rest_api_generator/resource_controller.rb
|
109
126
|
- bin/console
|
110
127
|
- bin/setup
|
111
128
|
- lib/generators/rest_api_generator/USAGE
|
@@ -123,14 +140,13 @@ files:
|
|
123
140
|
- lib/generators/rest_api_generator/templates/rest_api_controller.rb.tt
|
124
141
|
- lib/rest-api-generator.rb
|
125
142
|
- lib/rest_api_generator.rb
|
126
|
-
- lib/rest_api_generator/
|
127
|
-
- lib/rest_api_generator/child_resource_controller.rb
|
143
|
+
- lib/rest_api_generator/config.rb
|
128
144
|
- lib/rest_api_generator/custom_error.rb
|
129
145
|
- lib/rest_api_generator/error_handler.rb
|
130
146
|
- lib/rest_api_generator/filterable.rb
|
131
147
|
- lib/rest_api_generator/helpers/render.rb
|
132
148
|
- lib/rest_api_generator/orderable.rb
|
133
|
-
- lib/rest_api_generator/
|
149
|
+
- lib/rest_api_generator/rails.rb
|
134
150
|
- lib/rest_api_generator/version.rb
|
135
151
|
- rest-api-generator.gemspec
|
136
152
|
- sig/rest_api_generator.rbs
|
@@ -158,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
174
|
- !ruby/object:Gem::Version
|
159
175
|
version: '0'
|
160
176
|
requirements: []
|
161
|
-
rubygems_version: 3.3.
|
177
|
+
rubygems_version: 3.3.3
|
162
178
|
signing_key:
|
163
179
|
specification_version: 4
|
164
180
|
summary: Build a Ruby on Rails REST API faster
|
File without changes
|