Class: RailsContractSync::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_contract_sync/builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(route_set:, controller_sources: {}, observations: []) ⇒ Builder

Returns a new instance of Builder.



5
6
7
8
9
# File 'lib/rails_contract_sync/builder.rb', line 5

def initialize(route_set:, controller_sources: {}, observations: [])
  @route_set = route_set
  @controller_sources = controller_sources
  @observations = observations
end

Instance Method Details

#build_freshObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rails_contract_sync/builder.rb', line 11

def build_fresh
  doc = OpenAPIDocument.new
  routes = Static::RouteExtractor.new(@route_set).extract
  params_by_controller = extract_params

  routes.each do |route|
    op = { "responses" => {} }
    add_request_body(op, route, params_by_controller)
    add_observed(op, route)
    op["responses"]["default"] = { "description" => "" } if op["responses"].empty?
    doc.set_operation(route[:path], route[:verb], op)
  end
  doc
end