zero-rails_openapi 1.5.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/open_api/dsl.rb CHANGED
@@ -25,7 +25,8 @@ module OpenApi
25
25
 
26
26
  def components &block
27
27
  doc_tag if @doc_info.nil?
28
- current_doc = @doc_info[:components] = Components.new
28
+ structure = %i[ schemas responses parameters examples requestBodies securitySchemes ].map { |k| [k, { }] }.to_h
29
+ current_doc = @doc_info[:components] = Components.new.merge!(structure)
29
30
  current_doc.instance_exec(&block)
30
31
  current_doc.process_objs
31
32
  end
@@ -35,7 +36,7 @@ module OpenApi
35
36
  # select the routing info (corresponding to the current method) from routing list.
36
37
  action_path = "#{@route_base ||= controller_path}##{action}"
37
38
  routes = ctrl_routes_list&.select { |api| api[:action_path].match?(/^#{action_path}$/) }
38
- pp "[ZRO Warning] Routing mapping failed: #{@route_base}##{action}" and return if routes.blank?
39
+ return puts ' ZRO'.red + " Route mapping failed: #{@route_base}##{action}" if routes.blank?
39
40
 
40
41
  api = ApiInfo.new(action_path, skip: Array(skip), use: Array(use))
41
42
  .merge! description: '', summary: summary, operationId: action, tags: [@doc_tag],
@@ -11,15 +11,13 @@ module OpenApi
11
11
 
12
12
  module ClassMethods
13
13
  def generate_docs(doc_name = nil)
14
- pp '[ZRO] No documents have been configured!' and return if Config.docs.keys.blank?
14
+ return puts ' ZRO'.red + ' No documents have been configured!' if Config.docs.keys.blank?
15
15
 
16
+ # :nocov:
16
17
  Dir['./app/controllers/**/*_controller.rb'].each do |file|
17
- # Do Not `require`!
18
- # It causes problems, such as making `skip_before_action` not working.
19
- # :nocov:
20
18
  file.sub('./app/controllers/', '').sub('.rb', '').camelize.constantize
21
- # :nocov:
22
19
  end
20
+ # :nocov:
23
21
  Dir[*Array(Config.doc_location)].each { |file| require file }
24
22
  (doc_name || Config.docs.keys).map { |name| { name => generate_doc(name) } }.reduce({ }, :merge!)
25
23
  end
@@ -52,18 +50,20 @@ module OpenApi
52
50
 
53
51
  def write_docs(generate_files: true)
54
52
  docs = generate_docs
53
+ puts ' ZRO loaded.'.green if ENV['RAILS_ENV']
55
54
  return unless generate_files
56
55
  # :nocov:
57
56
  output_path = Config.file_output_path
58
57
  FileUtils.mkdir_p output_path
59
58
  max_length = docs.keys.map(&:size).sort.last
60
59
  docs.each do |doc_name, doc|
61
- puts "[ZRO] `#{doc_name.to_s.rjust(max_length)}.json` has been generated."
60
+ puts ' ZRO'.green + " `#{doc_name.to_s.rjust(max_length)}.json` has been generated."
62
61
  File.open("#{output_path}/#{doc_name}.json", 'w') { |file| file.write JSON.pretty_generate doc }
63
62
  end
64
63
  # :nocov:
65
64
  end
66
- end # end of module
65
+ end
66
+ # end of module
67
67
 
68
68
  def routes
69
69
  @routes ||=
@@ -1,3 +1,3 @@
1
1
  module OpenApi
2
- VERSION = '1.5.2'
2
+ VERSION = '1.5.3'
3
3
  end
@@ -21,10 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
+ # spec.required_ruby_version = ">= 2.2.2"
25
+
24
26
  spec.add_development_dependency 'bundler', '~> 1.16.a'
25
27
  spec.add_development_dependency 'rake', '~> 10.0'
26
28
  spec.add_development_dependency 'rspec', '~> 3.0'
27
29
  spec.add_development_dependency 'simplecov'
30
+ spec.add_development_dependency 'colorize'
28
31
 
29
32
  spec.add_runtime_dependency 'rails', '>= 3'
30
33
  spec.add_runtime_dependency 'activesupport', '>= 3'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zero-rails_openapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - zhandao
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-02 00:00:00.000000000 Z
11
+ date: 2018-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: colorize
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rails
71
85
  requirement: !ruby/object:Gem::Requirement