Class: OpenapiContracts::Doc::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_contracts/doc/parser.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dir) ⇒ Parser

Returns a new instance of Parser.



7
8
9
# File 'lib/openapi_contracts/doc/parser.rb', line 7

def initialize(dir)
  @dir = dir
end

Class Method Details

.call(dir) ⇒ Object



3
4
5
# File 'lib/openapi_contracts/doc/parser.rb', line 3

def self.call(dir)
  new(dir).parse('openapi.yaml')
end

Instance Method Details

#parse(path = 'openapi.yaml') ⇒ Object



11
12
13
14
15
16
17
# File 'lib/openapi_contracts/doc/parser.rb', line 11

def parse(path = 'openapi.yaml')
  abs_path = @dir.join(path)
  data = parse_file(abs_path, translate: false)
  data.deep_merge! merge_components
  data = join_partials(abs_path.dirname, data)
  nullable_to_type!(data)
end