r2-oas 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -1
  3. data/GEMSPEC.md +2 -2
  4. data/README.ja.md +54 -37
  5. data/README.md +50 -31
  6. data/lib/r2-oas.rb +3 -3
  7. data/lib/r2-oas/app_configuration.rb +16 -0
  8. data/lib/r2-oas/app_configuration/deprecation.rb +28 -0
  9. data/lib/r2-oas/configuration.rb +52 -0
  10. data/lib/r2-oas/deploy/client.rb +1 -1
  11. data/lib/r2-oas/{plugins/schema/v3/object → dynamic/schema/v3/object/from_routes}/hookable_base_object.rb +7 -7
  12. data/lib/r2-oas/errors.rb +5 -0
  13. data/lib/r2-oas/hooks/hook.rb +7 -5
  14. data/lib/r2-oas/pluggable_configuration.rb +8 -5
  15. data/lib/r2-oas/plugin/base.rb +44 -0
  16. data/lib/r2-oas/plugin/executor.rb +148 -0
  17. data/lib/r2-oas/plugin/hookable.rb +42 -0
  18. data/lib/r2-oas/plugin/public.rb +3 -0
  19. data/lib/r2-oas/plugin/transform/transform.rb +10 -0
  20. data/lib/r2-oas/plugin/transform/v3/transform.rb +20 -0
  21. data/lib/r2-oas/plugin/transform/v3/visitable.rb +37 -0
  22. data/lib/r2-oas/public.rb +5 -0
  23. data/lib/r2-oas/schema/base.rb +1 -1
  24. data/lib/r2-oas/schema/builder.rb +1 -1
  25. data/lib/r2-oas/schema/v3/analyzer/path_analyzer.rb +1 -1
  26. data/lib/r2-oas/schema/v3/builder.rb +1 -1
  27. data/lib/r2-oas/schema/v3/builder/base_builder.rb +14 -2
  28. data/lib/r2-oas/schema/v3/builder/doc_builder.rb +10 -2
  29. data/lib/r2-oas/schema/v3/generator/base_generator.rb +7 -2
  30. data/lib/r2-oas/schema/v3/generator/doc_generator.rb +1 -1
  31. data/lib/r2-oas/schema/v3/manager/file/include_ref_base_file_manager.rb +3 -2
  32. data/lib/r2-oas/schema/v3/object/from_files/base_object.rb +62 -0
  33. data/lib/r2-oas/schema/v3/object/from_files/components/request_body_object.rb +103 -0
  34. data/lib/r2-oas/schema/v3/object/from_files/components/schema_object.rb +102 -0
  35. data/lib/r2-oas/schema/v3/object/from_files/components_object.rb +46 -0
  36. data/lib/r2-oas/schema/v3/object/from_files/external_document_object.rb +23 -0
  37. data/lib/r2-oas/schema/v3/object/from_files/info_object.rb +23 -0
  38. data/lib/r2-oas/schema/v3/object/from_files/openapi_object.rb +61 -0
  39. data/lib/r2-oas/schema/v3/object/from_files/path_item_object.rb +110 -0
  40. data/lib/r2-oas/schema/v3/object/from_files/paths_object.rb +33 -0
  41. data/lib/r2-oas/schema/v3/object/from_files/utils/all.rb +4 -0
  42. data/lib/r2-oas/schema/v3/object/from_files/utils/deep_methods.rb +27 -0
  43. data/lib/r2-oas/schema/v3/object/from_files/utils/refs.rb +151 -0
  44. data/lib/r2-oas/schema/v3/object/{base_object.rb → from_routes/base_object.rb} +11 -1
  45. data/lib/r2-oas/schema/v3/object/{components → from_routes/components}/request_body_object.rb +23 -19
  46. data/lib/r2-oas/schema/v3/object/{components → from_routes/components}/schema_object.rb +16 -12
  47. data/lib/r2-oas/schema/v3/object/{components_object.rb → from_routes/components_object.rb} +11 -11
  48. data/lib/r2-oas/schema/v3/object/from_routes/external_document_object.rb +28 -0
  49. data/lib/r2-oas/schema/v3/object/{info_object.rb → from_routes/info_object.rb} +11 -2
  50. data/lib/r2-oas/schema/v3/object/{openapi_object.rb → from_routes/openapi_object.rb} +12 -11
  51. data/lib/r2-oas/schema/v3/object/{path_item_object.rb → from_routes/path_item_object.rb} +6 -6
  52. data/lib/r2-oas/schema/v3/object/{paths_object.rb → from_routes/paths_object.rb} +11 -8
  53. data/lib/r2-oas/schema/v3/object/{public.rb → from_routes/public.rb} +0 -0
  54. data/lib/r2-oas/schema/v3/object/{server_object.rb → from_routes/server_object.rb} +0 -0
  55. data/lib/r2-oas/schema/v3/object/{tag_object.rb → from_routes/tag_object.rb} +2 -1
  56. data/lib/r2-oas/schema/v3/object/store.rb +54 -0
  57. data/lib/r2-oas/shared/all.rb +1 -0
  58. data/lib/r2-oas/shared/callable.rb +17 -0
  59. data/lib/r2-oas/store.rb +20 -16
  60. data/lib/r2-oas/support/deprecation.rb +24 -0
  61. data/lib/r2-oas/support/deprecation/behavior.rb +21 -0
  62. data/lib/r2-oas/support/deprecation/instance_delegator.rb +42 -0
  63. data/lib/r2-oas/support/deprecation/reporting.rb +91 -0
  64. data/lib/r2-oas/task_logging.rb +3 -3
  65. data/lib/r2-oas/tasks/common.rake +1 -1
  66. data/lib/r2-oas/tasks/main.rake +31 -9
  67. data/lib/r2-oas/tasks/tool.rake +7 -4
  68. data/lib/r2-oas/version.rb +1 -1
  69. metadata +49 -22
  70. data/lib/r2-oas/schema/v3/object/external_document_object.rb +0 -19
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'sortable'
4
+ require_relative 'callable'
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module R2OAS
4
+ module Callable
5
+ def deep_call(data, target, callback)
6
+ return data unless data.is_a?(Hash)
7
+
8
+ data.each do |key, value|
9
+ if key.eql? target
10
+ data[key] = callback.call(value)
11
+ else
12
+ data[key] = deep_call(value, target, callback)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -9,29 +9,32 @@ module R2OAS
9
9
  class Store
10
10
  attr_accessor :data
11
11
 
12
- def initialize(data = {})
12
+ def initialize(type, data = {})
13
13
  if data.empty?
14
14
  @data = {}
15
- @data['type'] = :schema
15
+ @type = type
16
+ @data['type'] = type
16
17
  @data['data'] = {}
17
18
  else
19
+ @type = type
18
20
  @data = data
19
21
  end
20
22
  end
21
23
 
22
- def add(key, value, type = :schema)
23
- sha1 = calc_sha1(key, value)
24
+ def add(key, value)
25
+ case @type
26
+ when :schema
27
+ sha1 = calc_sha1(key, value)
24
28
 
25
- @data['data'][sha1] ||= {}
26
- @data['type'] = type
27
- @data['data'][sha1]['key'] = key
28
- @data['data'][sha1]['value'] = Zlib::Deflate.deflate(value)
29
+ @data['data'][sha1] ||= {}
30
+ @data['data'][sha1]['key'] = key
31
+ @data['data'][sha1]['value'] = Zlib::Deflate.deflate(value)
32
+ end
29
33
  end
30
34
 
31
35
  def save
32
- type = @data['type']
33
36
  @data['data'].values.each do |value|
34
- case type
37
+ case @type
35
38
  when :schema
36
39
  save_path = value['key']
37
40
  save_data = Zlib::Inflate.inflate(value['value'])
@@ -43,7 +46,7 @@ module R2OAS
43
46
  end
44
47
 
45
48
  def dup_slice(*sha1s)
46
- dup_store = Store.new(@data.dup)
49
+ dup_store = Store.new(@type, @data.dup)
47
50
  dup_data = dup_store.data['data']
48
51
  dup_store.data['data'] = sha1s.each_with_object({}) { |sha1, data| data[sha1] = dup_data[sha1] if dup_store.key?(sha1) }
49
52
  dup_store
@@ -102,16 +105,17 @@ module R2OAS
102
105
  class << self
103
106
  extend Forwardable
104
107
 
105
- def_delegators :instance, :add
108
+ def_delegators :instance, :add, :save, :dup_slice, :checksum?, :key?, :exists?, :diff_from
106
109
 
107
- def create
108
- instance
110
+ def create(type = :schema)
111
+ instance(type)
109
112
  end
110
113
 
111
114
  private
112
115
 
113
- def instance
114
- @instance ||= new
116
+ def instance(type)
117
+ @instance ||= {}
118
+ @instance[type] ||= new(type)
115
119
  end
116
120
  end
117
121
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'deprecation/instance_delegator'
4
+ require_relative 'deprecation/reporting'
5
+ require_relative 'deprecation/behavior'
6
+
7
+ module R2OAS
8
+ class Deprecation
9
+ include Singleton
10
+ # Be sure to follow the Singleton module
11
+ include InstanceDelegator
12
+ include Behavior
13
+ include Reporting
14
+
15
+ # The version number in which the deprecated behavior will be removed, by default.
16
+ attr_accessor :deprecation_horizon
17
+
18
+ def initialize(deprecation_horizon = '0.4.2', gem_name = 'r2-oas')
19
+ self.gem_name = gem_name
20
+ self.deprecation_horizon = deprecation_horizon
21
+ self.silenced = false
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ # MEMO:
4
+ # copy from https://github.com/rails/rails/blob/master/activesupport/lib/active_support/deprecation/behaviors.rb
5
+ module R2OAS
6
+ class Deprecation
7
+ class DeprecationError < StandardError; end
8
+
9
+ DEFAULT_BEHAVIORS = {
10
+ stderr: lambda { |message, _callstack, _deprecation_horizon, _gem_name|
11
+ $stderr.puts(message)
12
+ }
13
+ }.freeze
14
+
15
+ module Behavior
16
+ def behavior
17
+ @behavior ||= [DEFAULT_BEHAVIORS[:stderr]]
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ # copy from https://github.com/rails/rails/blob/master/activesupport/lib/active_support/deprecation/instance_delegator.rb
6
+ module R2OAS
7
+ class Deprecation
8
+ module InstanceDelegator
9
+ # MEMO:
10
+ # base must be singleton class
11
+ def self.included(base)
12
+ base.extend(ClassMethods)
13
+ base.singleton_class.extend(Forwardable)
14
+ base.singleton_class.prepend(OverrideDelegators)
15
+ base.public_class_method :new
16
+ end
17
+
18
+ module ClassMethods
19
+ # override Module#include
20
+ def include(included_module)
21
+ included_module.instance_methods.each { |m| method_added(m) }
22
+ super
23
+ end
24
+
25
+ def method_added(method_name)
26
+ singleton_class.def_delegators(:instance, method_name)
27
+ end
28
+ end
29
+
30
+ module OverrideDelegators
31
+ def warn(message = nil, callstack = nil)
32
+ # MEMO:
33
+ # Why update callstack
34
+ # https://github.com/rails/rails/pull/26686
35
+ callstack ||= caller_locations(2)
36
+ super
37
+ end
38
+ alias will_remove warn
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ # MEMO:
4
+ # copy from https://github.com/rails/rails/blob/master/activesupport/lib/active_support/deprecation/reporting.rb
5
+ module R2OAS
6
+ class Deprecation
7
+ module Reporting
8
+ attr_accessor :silenced, :gem_name
9
+
10
+ FILE_LINE_METHOD_REGEXP = /^(?<file>.+?):(?<line>\d+)(?::in `(?<method>.*?)')?/.freeze
11
+ R2OAS_GEM_ROOT = File.expand_path('../../../../', __dir__) + '/lib'
12
+
13
+ def warn(message = nil, callstack = nil)
14
+ return if silenced
15
+
16
+ callstack ||= caller_locations(2)
17
+ deprecation_message(callstack, message).tap do |msg|
18
+ behavior.each { |b| b.call(msg, callstack, deprecation_horizon, gem_name) }
19
+ end
20
+ end
21
+ alias will_remove warn
22
+
23
+ def silence
24
+ old_silenced = silenced
25
+ self.silenced = true
26
+ yield if block_given?
27
+ self.silenced = old_silenced
28
+ end
29
+
30
+ private
31
+
32
+ def deprecation_message(callstack, message = nil)
33
+ message ||= 'You are using deprecated behavior which will be removed from the next major or minor release.'
34
+ "DEPRECATION WARNING: #{message} #{deprecation_caller_message(callstack)}"
35
+ end
36
+
37
+ def deprecation_caller_message(callstack)
38
+ file, line, method = extract_callstack(callstack)
39
+ if file
40
+ if line && method
41
+ "(called from #{method} at #{file}:#{line})"
42
+ else
43
+ "(called from #{file}:#{line})"
44
+ end
45
+ end
46
+ end
47
+
48
+ def extract_callstack(callstack)
49
+ return _extract_callback(callstack) if callstack.first.is_a? String
50
+
51
+ offending_line = callstack.find do |frame|
52
+ frame.absolute_path && !ignored_callstack(frame.absolute_path)
53
+ end || callstack.first
54
+
55
+ [offending_line.path, offending_line.lineno, offending_line.label]
56
+ end
57
+
58
+ # e.g.)
59
+ # callback = /path/to/file.rb:274:in `require'
60
+ #
61
+ # file = /path/to/file.rb
62
+ # line = 274
63
+ # method = require
64
+ def _extract_callstack(_callback)
65
+ warn 'Please pass `caller_options` to the deprecation API' if $VERBOSE
66
+ offending_line = callstack.find { |line| !ignored_callstack(line) || callstack.first }
67
+
68
+ if offendihng_line
69
+ md = offending_line.match(FILE_LINE_METHOD_REGEXP)
70
+
71
+ if md.present?
72
+ md.captures
73
+ else
74
+ offending_line
75
+ end
76
+ end
77
+ end
78
+
79
+ # MEMO:
80
+ # see https://docs.ruby-lang.org/ja/latest/class/RbConfig.html#C_-C-O-N-F-I-G
81
+ def ignored_callstack(path)
82
+ # MEMO:
83
+ #
84
+ # e.g.)
85
+ # R2OAS_GEM_ROOT = "/Users/yukihirop/RubyProjects/r2-oas/lib"
86
+ # rubylibprefix = "/Users/yukihirop/.rbenv/versions/2.7.1/lib/ruby"
87
+ path.start_with?(R2OAS_GEM_ROOT) || path.start_with?(RbConfig::CONFIG['rubylibprefix'])
88
+ end
89
+ end
90
+ end
91
+ end
@@ -20,10 +20,10 @@ module R2OAS
20
20
 
21
21
  private
22
22
 
23
- def start
24
- logger.info '[R2-OAS] start'
23
+ def start(initial = '[R2-OAS]')
24
+ logger.info "#{initial} start"
25
25
  yield
26
- logger.info '[R2-OAS] end'
26
+ logger.info "#{initial} end"
27
27
  end
28
28
 
29
29
  def logger
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../task_logging'
3
+ require 'r2-oas/task_logging'
4
4
 
5
5
  namespace :routes do
6
6
  namespace :oas do
@@ -8,7 +8,13 @@ load File.expand_path('common.rake', __dir__)
8
8
 
9
9
  namespace :routes do
10
10
  namespace :oas do
11
- desc 'Generate OAS documentation files'
11
+ desc '[R2-OAS] Initialize'
12
+ task init: [:common] do
13
+ R2OAS.init
14
+ puts '[R2-OAS] Initialized!'
15
+ end
16
+
17
+ desc '[R2-OAS] Generate OAS documentation files'
12
18
  task docs: [:common] do
13
19
  start do
14
20
  is_create_cache = cache_docs.eql? 'true'
@@ -18,7 +24,7 @@ namespace :routes do
18
24
  end
19
25
  end
20
26
 
21
- desc 'Analyze OAS documentation'
27
+ desc '[R2-OAS] Analyze OAS documentation'
22
28
  task analyze: [:common] do
23
29
  start do
24
30
  analyzer_options = { type: :existing, existing_schema_file_path: existing_schema_file_path }
@@ -31,16 +37,28 @@ namespace :routes do
31
37
  end
32
38
  end
33
39
 
34
- desc 'Distribute OAS documentation'
35
- task dist: [:common] do
40
+ desc '[R2-OAS] Build OAS documentation'
41
+ task build: [:common] do
36
42
  start do
37
- builder_options = { unit_paths_file_path: unit_paths_file_path }
43
+ output_dir_path = File.expand_path(R2OAS.output_dir_path)
44
+ FileUtils.mkdir_p(output_dir_path) unless FileTest.exists?(output_dir_path)
45
+
46
+ is_overrirde_src = override_src.eql? 'true'
47
+ builder_options = { unit_paths_file_path: unit_paths_file_path, use_plugin: true, output: true }
38
48
  builder = R2OAS::Schema::Builder.new(builder_options)
39
49
  builder.build_docs
50
+
51
+ if is_overrirde_src
52
+ before_schama_data = builder.pure_oas_doc
53
+ after_schema_data = builder.oas_doc
54
+ analyzer_options = { type: :edited }
55
+ analyzer = R2OAS::Schema::Analyzer.new(before_schama_data, after_schema_data, analyzer_options)
56
+ analyzer.analyze_docs
57
+ end
40
58
  end
41
59
  end
42
60
 
43
- desc 'Open Swagger Editor'
61
+ desc '[R2-OAS] Open Swagger Editor'
44
62
  task editor: [:common] do
45
63
  start do
46
64
  builder_options = { unit_paths_file_path: unit_paths_file_path }
@@ -54,7 +72,7 @@ namespace :routes do
54
72
  end
55
73
  end
56
74
 
57
- desc 'Open Swagger UI'
75
+ desc '[R2-OAS] Open Swagger UI'
58
76
  task ui: [:common] do
59
77
  start do
60
78
  builder_options = { unit_paths_file_path: unit_paths_file_path }
@@ -67,7 +85,7 @@ namespace :routes do
67
85
  end
68
86
  end
69
87
 
70
- desc 'Monitor OAS Document'
88
+ desc '[R2-OAS] Monitor OAS Document'
71
89
  task monitor: [:common] do
72
90
  start do
73
91
  builder_options = { unit_paths_file_path: unit_paths_file_path }
@@ -81,7 +99,7 @@ namespace :routes do
81
99
  end
82
100
  end
83
101
 
84
- desc 'Clean OAS Document'
102
+ desc '[R2-OAS] Clean OAS Document'
85
103
  task clean: [:common] do
86
104
  start do
87
105
  builder_options = { skip_load_dot_paths: true }
@@ -106,5 +124,9 @@ namespace :routes do
106
124
  def cache_docs
107
125
  ENV.fetch('CACHE_DOCS', 'false')
108
126
  end
127
+
128
+ def override_src
129
+ ENV.fetch('OVERRIDE_SRC', 'false')
130
+ end
109
131
  end
110
132
  end
@@ -8,7 +8,7 @@ load File.expand_path('common.rake', __dir__)
8
8
 
9
9
  namespace :routes do
10
10
  namespace :oas do
11
- desc 'Deploy OAS Document'
11
+ desc '[R2-OAS] Deploy OAS Document'
12
12
  task deploy: [:common] do
13
13
  start do
14
14
  client_options = {}
@@ -19,7 +19,10 @@ namespace :routes do
19
19
  client.download_swagger_ui_dist
20
20
  end
21
21
 
22
- builder_options = { unit_paths_file_path: unit_paths_file_path }
22
+ output_dir_path = File.expand_path(R2OAS.output_dir_path)
23
+ FileUtils.mkdir_p(output_dir_path) unless FileTest.exists?(output_dir_path)
24
+
25
+ builder_options = { unit_paths_file_path: unit_paths_file_path, use_plugin: true, output: true }
23
26
  builder = R2OAS::Schema::Builder.new(builder_options)
24
27
  builder.build_docs
25
28
 
@@ -28,7 +31,7 @@ namespace :routes do
28
31
  end
29
32
  end
30
33
 
31
- desc 'Display paths list'
34
+ desc '[R2-OAS] Display paths list'
32
35
  task paths_ls: [:common] do
33
36
  fd = IO.sysopen('/dev/null', 'w+')
34
37
  $stdout = IO.new(fd)
@@ -47,7 +50,7 @@ namespace :routes do
47
50
  puts result
48
51
  end
49
52
 
50
- desc 'Display paths stats'
53
+ desc '[R2-OAS] Display paths stats'
51
54
  task paths_stats: [:common] do
52
55
  fd = IO.sysopen('/dev/null', 'w+')
53
56
  $stdout = IO.new(fd)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module R2OAS
4
- VERSION = '0.3.4'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r2-oas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yukihirop
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2020-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docker-api
@@ -240,11 +240,11 @@ description: "== Let's intuitively write API documentation with Swagger Editor i
240
240
  to your Rails project. \U0001F44D \nSo if you want to use another tool, you can
241
241
  port it right away. \U0001F622 \nGenerate api docment(OpenAPI) side only from `Rails`
242
242
  routing. \n \nProvide rake tasks to management API Docment (OpenAPI) \U0001F389
243
- \ \n \n\n $ bundle exec rake routes:oas:docs\n $ bundle exec rake routes:oas:ui\n
244
- \ $ bundle exec rake routes:oas:editor\n $ bundle exec rake routes:oas:monitor\n
245
- \ $ bundle exec rake routes:oas:dist\n $ bundle exec rake routes:oas:clean\n
246
- \ $ bundle exec rake routes:oas:analyze\n $ bundle exec rake routes:oas:deploy\n\n
247
- \ \nHappy Coding ❗️\n"
243
+ \ \n \n $ bundle exec rake routes:oas:init\n $ bundle exec rake routes:oas:docs\n
244
+ \ $ bundle exec rake routes:oas:ui\n $ bundle exec rake routes:oas:editor\n
245
+ \ $ bundle exec rake routes:oas:monitor\n $ bundle exec rake routes:oas:build\n
246
+ \ $ bundle exec rake routes:oas:clean\n $ bundle exec rake routes:oas:analyze\n
247
+ \ $ bundle exec rake routes:oas:deploy\n\n \nHappy Coding ❗️\n"
248
248
  email:
249
249
  - te108186@gmail.com
250
250
  executables: []
@@ -258,6 +258,7 @@ files:
258
258
  - README.md
259
259
  - lib/r2-oas.rb
260
260
  - lib/r2-oas/app_configuration.rb
261
+ - lib/r2-oas/app_configuration/deprecation.rb
261
262
  - lib/r2-oas/app_configuration/server.rb
262
263
  - lib/r2-oas/app_configuration/swagger.rb
263
264
  - lib/r2-oas/app_configuration/swagger/editor.rb
@@ -269,6 +270,7 @@ files:
269
270
  - lib/r2-oas/configuration/paths_config.rb
270
271
  - lib/r2-oas/deploy/client.rb
271
272
  - lib/r2-oas/deploy/swagger-ui/index.html.erb
273
+ - lib/r2-oas/dynamic/schema/v3/object/from_routes/hookable_base_object.rb
272
274
  - lib/r2-oas/errors.rb
273
275
  - lib/r2-oas/hooks/global_hook.rb
274
276
  - lib/r2-oas/hooks/hook.rb
@@ -278,7 +280,14 @@ files:
278
280
  - lib/r2-oas/lib/three-way-merge/twm.rb
279
281
  - lib/r2-oas/logger/stdout_logger.rb
280
282
  - lib/r2-oas/pluggable_configuration.rb
281
- - lib/r2-oas/plugins/schema/v3/object/hookable_base_object.rb
283
+ - lib/r2-oas/plugin/base.rb
284
+ - lib/r2-oas/plugin/executor.rb
285
+ - lib/r2-oas/plugin/hookable.rb
286
+ - lib/r2-oas/plugin/public.rb
287
+ - lib/r2-oas/plugin/transform/transform.rb
288
+ - lib/r2-oas/plugin/transform/v3/transform.rb
289
+ - lib/r2-oas/plugin/transform/v3/visitable.rb
290
+ - lib/r2-oas/public.rb
282
291
  - lib/r2-oas/routing/adjustor.rb
283
292
  - lib/r2-oas/routing/base.rb
284
293
  - lib/r2-oas/routing/components/all.rb
@@ -330,25 +339,43 @@ files:
330
339
  - lib/r2-oas/schema/v3/manager/file/path_item_file_manager.rb
331
340
  - lib/r2-oas/schema/v3/manager/file_manager.rb
332
341
  - lib/r2-oas/schema/v3/manager/pathname_manager.rb
333
- - lib/r2-oas/schema/v3/object/base_object.rb
334
- - lib/r2-oas/schema/v3/object/components/request_body_object.rb
335
- - lib/r2-oas/schema/v3/object/components/schema_object.rb
336
- - lib/r2-oas/schema/v3/object/components_object.rb
337
- - lib/r2-oas/schema/v3/object/external_document_object.rb
338
- - lib/r2-oas/schema/v3/object/info_object.rb
339
- - lib/r2-oas/schema/v3/object/openapi_object.rb
340
- - lib/r2-oas/schema/v3/object/path_item_object.rb
341
- - lib/r2-oas/schema/v3/object/paths_object.rb
342
- - lib/r2-oas/schema/v3/object/public.rb
343
- - lib/r2-oas/schema/v3/object/server_object.rb
344
- - lib/r2-oas/schema/v3/object/tag_object.rb
342
+ - lib/r2-oas/schema/v3/object/from_files/base_object.rb
343
+ - lib/r2-oas/schema/v3/object/from_files/components/request_body_object.rb
344
+ - lib/r2-oas/schema/v3/object/from_files/components/schema_object.rb
345
+ - lib/r2-oas/schema/v3/object/from_files/components_object.rb
346
+ - lib/r2-oas/schema/v3/object/from_files/external_document_object.rb
347
+ - lib/r2-oas/schema/v3/object/from_files/info_object.rb
348
+ - lib/r2-oas/schema/v3/object/from_files/openapi_object.rb
349
+ - lib/r2-oas/schema/v3/object/from_files/path_item_object.rb
350
+ - lib/r2-oas/schema/v3/object/from_files/paths_object.rb
351
+ - lib/r2-oas/schema/v3/object/from_files/utils/all.rb
352
+ - lib/r2-oas/schema/v3/object/from_files/utils/deep_methods.rb
353
+ - lib/r2-oas/schema/v3/object/from_files/utils/refs.rb
354
+ - lib/r2-oas/schema/v3/object/from_routes/base_object.rb
355
+ - lib/r2-oas/schema/v3/object/from_routes/components/request_body_object.rb
356
+ - lib/r2-oas/schema/v3/object/from_routes/components/schema_object.rb
357
+ - lib/r2-oas/schema/v3/object/from_routes/components_object.rb
358
+ - lib/r2-oas/schema/v3/object/from_routes/external_document_object.rb
359
+ - lib/r2-oas/schema/v3/object/from_routes/info_object.rb
360
+ - lib/r2-oas/schema/v3/object/from_routes/openapi_object.rb
361
+ - lib/r2-oas/schema/v3/object/from_routes/path_item_object.rb
362
+ - lib/r2-oas/schema/v3/object/from_routes/paths_object.rb
363
+ - lib/r2-oas/schema/v3/object/from_routes/public.rb
364
+ - lib/r2-oas/schema/v3/object/from_routes/server_object.rb
365
+ - lib/r2-oas/schema/v3/object/from_routes/tag_object.rb
366
+ - lib/r2-oas/schema/v3/object/store.rb
345
367
  - lib/r2-oas/schema/v3/squeezer.rb
346
368
  - lib/r2-oas/schema/v3/squeezer/base_squeezer.rb
347
369
  - lib/r2-oas/schema/v3/squeezer/path_squeezer.rb
348
370
  - lib/r2-oas/schema/v3/squeezer/tag_squeezer.rb
349
371
  - lib/r2-oas/shared/all.rb
372
+ - lib/r2-oas/shared/callable.rb
350
373
  - lib/r2-oas/shared/sortable.rb
351
374
  - lib/r2-oas/store.rb
375
+ - lib/r2-oas/support/deprecation.rb
376
+ - lib/r2-oas/support/deprecation/behavior.rb
377
+ - lib/r2-oas/support/deprecation/instance_delegator.rb
378
+ - lib/r2-oas/support/deprecation/reporting.rb
352
379
  - lib/r2-oas/task.rb
353
380
  - lib/r2-oas/task_logging.rb
354
381
  - lib/r2-oas/tasks/common.rake
@@ -363,9 +390,9 @@ licenses:
363
390
  - MIT
364
391
  metadata:
365
392
  bug_tracker_uri: https://github.com/yukihirop/r2-oas/issues
366
- changelog_uri: https://github.com/yukihirop/r2-oas/blob/v0.3.4/CHANGELOG.md
393
+ changelog_uri: https://github.com/yukihirop/r2-oas/blob/v0.4.0/CHANGELOG.md
367
394
  documentation_uri: https://yukihirop.github.io/r2-oas
368
- source_code_uri: https://github.com/yukihirop/r2-oas/tree/v0.3.4
395
+ source_code_uri: https://github.com/yukihirop/r2-oas/tree/v0.4.0
369
396
  post_install_message:
370
397
  rdoc_options: []
371
398
  require_paths: