module OpenapiRspec::SchemaLoader
Public Class Methods
call(path, app: OpenapiRspec.config.app)
click to toggle source
# File lib/openapi_rspec/schema_loader.rb, line 5 def self.call(path, app: OpenapiRspec.config.app) response = request(path, app) parse(response) end
parse(schema)
click to toggle source
# File lib/openapi_rspec/schema_loader.rb, line 10 def self.parse(schema) begin JSON.parse(schema) rescue JSON::ParserError YAML.safe_load(schema) end rescue => e raise "Unable to parse OpenAPI schema. #{e}" end
request(path, app)
click to toggle source
# File lib/openapi_rspec/schema_loader.rb, line 20 def self.request(path, app) session = Rack::Test::Session.new(app) response = session.get(path) raise "Response code: #{response.status}" unless response.successful? raise "Empty body" if response.body.empty? response.body rescue => e raise "Unable to perform GET request for the OpenAPI schema '#{path}'. #{e}" end