Module: RailsContractSync
- Defined in:
- lib/rails_contract_sync.rb,
lib/rails_contract_sync/merger.rb,
lib/rails_contract_sync/builder.rb,
lib/rails_contract_sync/railtie.rb,
lib/rails_contract_sync/version.rb,
lib/rails_contract_sync/configuration.rb,
lib/rails_contract_sync/schema_inferrer.rb,
lib/rails_contract_sync/openapi_document.rb,
lib/rails_contract_sync/runtime/middleware.rb,
lib/rails_contract_sync/runtime/route_resolver.rb,
lib/rails_contract_sync/static/route_extractor.rb,
lib/rails_contract_sync/static/params_extractor.rb,
lib/rails_contract_sync/runtime/observation_store.rb
Defined Under Namespace
Modules: Merger, Runtime, SchemaInferrer, Static
Classes: Builder, Configuration, OpenAPIDocument, Railtie
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
-
.build(route_set:, controller_sources:, observation_store:, output_path:, prune: false) ⇒ Object
-
.configuration ⇒ Object
-
.generate(route_set:, controller_sources:, output_path:, prune: false) ⇒ Object
-
.write_merged(route_set:, controller_sources:, observations:, output_path:, prune:) ⇒ Object
Class Method Details
.build(route_set:, controller_sources:, observation_store:, output_path:, prune: false) ⇒ Object
78
79
80
|
# File 'lib/rails_contract_sync/builder.rb', line 78
def build(route_set:, controller_sources:, observation_store:, output_path:, prune: false)
write_merged(route_set: route_set, controller_sources: controller_sources, observations: observation_store.all, output_path: output_path, prune: prune)
end
|
.configuration ⇒ Object
22
23
24
|
# File 'lib/rails_contract_sync/configuration.rb', line 22
def configuration
@configuration ||= Configuration.new
end
|
.generate(route_set:, controller_sources:, output_path:, prune: false) ⇒ Object
74
75
76
|
# File 'lib/rails_contract_sync/builder.rb', line 74
def generate(route_set:, controller_sources:, output_path:, prune: false)
write_merged(route_set: route_set, controller_sources: controller_sources, observations: [], output_path: output_path, prune: prune)
end
|
.write_merged(route_set:, controller_sources:, observations:, output_path:, prune:) ⇒ Object
82
83
84
85
86
87
88
89
|
# File 'lib/rails_contract_sync/builder.rb', line 82
def write_merged(route_set:, controller_sources:, observations:, output_path:, prune:)
fresh = Builder.new(route_set: route_set, controller_sources: controller_sources, observations: observations).build_fresh
existing = File.exist?(output_path) ? OpenAPIDocument.load_file(output_path) : nil
merged = Merger.merge(existing, fresh, prune: prune)
FileUtils.mkdir_p(File.dirname(File.expand_path(output_path)))
merged.write(output_path)
merged
end
|