Class: OpenapiRuby::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_ruby/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/openapi_ruby/configuration.rb', line 26

def initialize
  @schemas = {}
  @component_paths = ["app/api_components"]
  @camelize_keys = true
  @key_transform = nil
  @request_validation = :disabled
  @response_validation = :disabled
  @strict_query_params = false
  @coerce_params = true
  @error_handler = nil
  @schema_output_dir = "swagger"
  @schema_output_format = :yaml
  @validate_responses_in_tests = true
  @ui_enabled = false
  @ui_path = "/api-docs"
  @ui_config = {}
  @coverage_enabled = false
  @coverage_report_path = "tmp/openapi_coverage.json"
end

Instance Attribute Details

#camelize_keysObject

Returns the value of attribute camelize_keys.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def camelize_keys
  @camelize_keys
end

#coerce_paramsObject

Returns the value of attribute coerce_params.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def coerce_params
  @coerce_params
end

#component_pathsObject

Components



10
11
12
# File 'lib/openapi_ruby/configuration.rb', line 10

def component_paths
  @component_paths
end

#coverage_enabledObject

Coverage



24
25
26
# File 'lib/openapi_ruby/configuration.rb', line 24

def coverage_enabled
  @coverage_enabled
end

#coverage_report_pathObject

Returns the value of attribute coverage_report_path.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def coverage_report_path
  @coverage_report_path
end

#error_handlerObject

Returns the value of attribute error_handler.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def error_handler
  @error_handler
end

#key_transformObject

Returns the value of attribute key_transform.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def key_transform
  @key_transform
end

#request_validationObject

Middleware (runtime validation)



15
16
17
# File 'lib/openapi_ruby/configuration.rb', line 15

def request_validation
  @request_validation
end

#response_validationObject

Returns the value of attribute response_validation.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def response_validation
  @response_validation
end

#schema_output_dirObject

Test / Generation



18
19
20
# File 'lib/openapi_ruby/configuration.rb', line 18

def schema_output_dir
  @schema_output_dir
end

#schema_output_formatObject

Returns the value of attribute schema_output_format.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def schema_output_format
  @schema_output_format
end

#schemasObject

Schema definitions — supports multiple schemas (e.g. public_api, admin_api) Each key maps to a hash with :info, :servers, :component_scope, :strict_mode, etc.



7
8
9
# File 'lib/openapi_ruby/configuration.rb', line 7

def schemas
  @schemas
end

#strict_query_paramsObject

Returns the value of attribute strict_query_params.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def strict_query_params
  @strict_query_params
end

#ui_configObject

Returns the value of attribute ui_config.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def ui_config
  @ui_config
end

#ui_enabledObject

UI (optional)



21
22
23
# File 'lib/openapi_ruby/configuration.rb', line 21

def ui_enabled
  @ui_enabled
end

#ui_pathObject

Returns the value of attribute ui_path.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def ui_path
  @ui_path
end

#validate_responses_in_testsObject

Returns the value of attribute validate_responses_in_tests.



11
12
13
# File 'lib/openapi_ruby/configuration.rb', line 11

def validate_responses_in_tests
  @validate_responses_in_tests
end

Instance Method Details

#validate!Object

Raises:



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/openapi_ruby/configuration.rb', line 46

def validate!
  unless %i[disabled enabled warn_only].include?(@request_validation)
    raise ConfigurationError, "request_validation must be :disabled, :enabled, or :warn_only"
  end

  unless %i[disabled enabled warn_only].include?(@response_validation)
    raise ConfigurationError, "response_validation must be :disabled, :enabled, or :warn_only"
  end

  return if %i[yaml json].include?(@schema_output_format)

  raise ConfigurationError, "schema_output_format must be :yaml or :json"
end