dry_crud_jsonapi_swagger 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ca6f8559b627d78879620ecdc23cf364c2c66a9bdc250413583822a207c2bdb
4
- data.tar.gz: acd211a583d25f1b71793298e05fde5cf4eee4fb3f09eba1c673256abed65a30
3
+ metadata.gz: 807ceabf80b721ba30a118e1329834c7d3bbd59b01a3cda459ff9f1988c147bb
4
+ data.tar.gz: e004fe507b0d66740bd4123e59e53cede709043dc0837397ba655ae40cbc288f
5
5
  SHA512:
6
- metadata.gz: 42337d4de64d59e9c28e6cc456e5f5dd7c7b919618de928a0a9fbc8a1fa9564b114044e55e958deae231d8258c71de26979cff06c357871a90a5f372c918bb44
7
- data.tar.gz: 64089c5fdf47d6797861726b496811b4f7a05978ce29f33f76eb7c0af6095583da13acbfcb8a6e68fc4499f6160f92a6385a5f37cbbcd0dd3ab9b81d206e1697
6
+ metadata.gz: 91ad6961a51fbcf661c1bc719dd9f9d7d3b69a3c3f92320cf9b31b54532261eefab8f276f674fb724be976d670995ebc6611447b20f6e97cd3fb50e18cf65fc7
7
+ data.tar.gz: 0d59851eb55a49cbe99a39f15839e5d06ac48e5b0f8cf14c5eae9bee2ef61303b981e42027bf65aef72ad3c7fd7d5acda557b5bed1f51cefc782bada597846f2
@@ -0,0 +1,32 @@
1
+ module DryCrudJsonapiSwagger
2
+ class ApidocsController < ApplicationController
3
+ skip_before_action :authenticate, only: [:show]
4
+ skip_authorization_check
5
+
6
+ layout false
7
+
8
+ def show
9
+ respond_to do |format|
10
+ format.html
11
+ format.json { render json: generate_doc }
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def generate_doc
18
+ DryCrudJsonapiSwagger::Setup.new(request.url, controller_classes).run
19
+ end
20
+
21
+ def controller_classes
22
+ Rails.application.eager_load! if Rails.env.development?
23
+ json_api_controllers
24
+ end
25
+
26
+ def json_api_controllers
27
+ ListController.descendants.select { |model| model.include?(DryCrudJsonapi) }.select do |controller|
28
+ controller.model_class rescue false
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,7 +1,7 @@
1
- module Swagger
1
+ module DryCrudJsonapiSwagger
2
2
  class ControllerSetup
3
3
  include Rails.application.routes.url_helpers
4
- include Swagger::Helper
4
+ include Helper
5
5
  attr_reader :controller_class
6
6
 
7
7
  def initialize(controller_class)
@@ -32,6 +32,5 @@ module Swagger
32
32
  def index_path
33
33
  polymorphic_path(model_name.route_key) rescue nil
34
34
  end
35
-
36
35
  end
37
- end
36
+ end
@@ -1,4 +1,4 @@
1
- module Swagger
1
+ module DryCrudJsonapiSwagger
2
2
  module Helper
3
3
 
4
4
  def setup_swagger_path(path, helper = self, &block)
@@ -76,7 +76,7 @@ module Swagger
76
76
  def setup_tags(swagger_doc)
77
77
  swagger_doc.key :tags, [
78
78
  'All',
79
- Swagger::TagsSetup.path_tag(@path)
79
+ TagsSetup.path_tag(@path)
80
80
  ]
81
81
  end
82
82
 
@@ -125,6 +125,5 @@ module Swagger
125
125
  end
126
126
  end
127
127
  end
128
-
129
128
  end
130
- end
129
+ end
@@ -1,7 +1,7 @@
1
- module Swagger
1
+ module DryCrudJsonapiSwagger
2
2
  class NestedControllerSetup
3
3
  include Rails.application.routes.url_helpers
4
- include Swagger::Helper
4
+ include Helper
5
5
 
6
6
  attr_reader :controller_class, :controller_classes, :nested_class
7
7
 
@@ -48,6 +48,5 @@ module Swagger
48
48
 
49
49
  nested.flatten.include? controller_class.model_class
50
50
  end
51
-
52
51
  end
53
- end
52
+ end
@@ -1,4 +1,4 @@
1
- module Swagger
1
+ module DryCrudJsonapiSwagger
2
2
  class Setup
3
3
  attr_reader :request_uri, :controller_classes
4
4
 
@@ -21,7 +21,7 @@ module Swagger
21
21
  end
22
22
 
23
23
  def setup_tags(swagger_doc)
24
- Swagger::TagsSetup.new(swagger_doc).run
24
+ TagsSetup.new(swagger_doc).run
25
25
  end
26
26
 
27
27
  private
@@ -93,10 +93,8 @@ module Swagger
93
93
 
94
94
  def setup_controller(controller_class)
95
95
  controller_class.send :include, Swagger::Blocks
96
- Swagger::ControllerSetup.new(controller_class).run
97
- Swagger::NestedControllerSetup.new(controller_classes, controller_class).run
96
+ ControllerSetup.new(controller_class).run
97
+ NestedControllerSetup.new(controller_classes, controller_class).run
98
98
  end
99
-
100
99
  end
101
-
102
- end
100
+ end
@@ -1,4 +1,4 @@
1
- module Swagger
1
+ module DryCrudJsonapiSwagger
2
2
  class TagsSetup
3
3
 
4
4
  def initialize(swagger_doc = nil)
@@ -41,6 +41,5 @@ module Swagger
41
41
  require 'yaml'
42
42
  YAML.load_file(Rails.root.join('config', 'swagger-tags.yml')) # TODO: what is this for? fill yml with sensible values
43
43
  end
44
-
45
44
  end
46
- end
45
+ end
@@ -6,5 +6,5 @@ Rswag::Ui.configure do |c|
6
6
  # NOTE: If you're using rspec-api to expose Swagger files (under swagger_root) as JSON endpoints,
7
7
  # then the list below should correspond to the relative paths for those endpoints
8
8
 
9
- c.swagger_endpoint '/apidocs.json', 'API Docs'
9
+ c.swagger_endpoint 'swagger.json', 'API Docs'
10
10
  end
data/config/routes.rb CHANGED
@@ -1,4 +1,6 @@
1
- Rails.application.routes.draw do
2
- mount Rswag::Ui::Engine => '/apidocs'
3
- get 'apidocs', to: 'apidocs#show', constraints: { format: 'json' }
1
+ DryCrudJsonapiSwagger::Engine.routes.draw do
2
+ mount Rswag::Ui::Engine => '/'
3
+ get '/swagger.json', module: 'dry_crud_jsonapi_swagger', controller: 'apidocs', action: 'show', constraints: { format: 'json' }
4
4
  end
5
+
6
+
@@ -3,5 +3,6 @@ require "swagger/blocks"
3
3
 
4
4
  module DryCrudJsonapiSwagger
5
5
  class Engine < ::Rails::Engine
6
+ isolate_namespace DryCrudJsonapiSwagger
6
7
  end
7
8
  end
@@ -1,3 +1,3 @@
1
1
  module DryCrudJsonapiSwagger
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry_crud_jsonapi_swagger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Illi
@@ -89,12 +89,12 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - README.md
91
91
  - Rakefile
92
- - app/controllers/apidocs_controller.rb
93
- - app/domain/swagger/controller_setup.rb
94
- - app/domain/swagger/helper.rb
95
- - app/domain/swagger/nested_controller_setup.rb
96
- - app/domain/swagger/setup.rb
97
- - app/domain/swagger/tags_setup.rb
92
+ - app/controllers/dry_crud_jsonapi_swagger/apidocs_controller.rb
93
+ - app/domain/dry_crud_jsonapi_swagger/controller_setup.rb
94
+ - app/domain/dry_crud_jsonapi_swagger/helper.rb
95
+ - app/domain/dry_crud_jsonapi_swagger/nested_controller_setup.rb
96
+ - app/domain/dry_crud_jsonapi_swagger/setup.rb
97
+ - app/domain/dry_crud_jsonapi_swagger/tags_setup.rb
98
98
  - config/initializers/rswag-ui.rb
99
99
  - config/routes.rb
100
100
  - lib/dry_crud_jsonapi_swagger.rb
@@ -1,31 +0,0 @@
1
- class ApidocsController < ApplicationController
2
- skip_before_action :authenticate, only: [:show]
3
- skip_authorization_check
4
-
5
- layout false
6
-
7
- def show
8
- respond_to do |format|
9
- format.html
10
- format.json { render json: generate_doc }
11
- end
12
- end
13
-
14
- private
15
-
16
- def generate_doc
17
- Swagger::Setup.new(request.url, controller_classes).run
18
- end
19
-
20
- def controller_classes
21
- Rails.application.eager_load! if Rails.env.development?
22
- json_api_controllers
23
- end
24
-
25
- def json_api_controllers
26
- ListController.descendants.select { |model| model.include?(DryCrudJsonapi) }.select do |controller|
27
- controller.model_class rescue false
28
- end
29
- end
30
-
31
- end