dry_crud_jsonapi_swagger 0.1.0 → 0.1.1

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: 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