Module: OasHanami
- Defined in:
- lib/oas_hanami.rb,
lib/oas_hanami/version.rb,
lib/oas_hanami/web/view.rb,
lib/oas_hanami/inspector.rb,
lib/oas_hanami/configuration.rb,
lib/oas_hanami/route_extractor.rb,
lib/oas_hanami/oas_route_builder.rb,
lib/oas_hanami/hanami_route_formatter.rb
Defined Under Namespace
Modules: Web
Classes: Configuration, HanamiRouteFormatter, Inspector, OasRouteBuilder, RouteExtractor
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.build ⇒ Object
22
23
24
25
26
27
28
29
30
|
# File 'lib/oas_hanami.rb', line 22
def build
clear_cache
OasCore.config = config
host_routes = RouteExtractor.host_routes
oas_source = config.source_oas_path ? read_source_oas_file : {}
OasCore.build(host_routes, oas_source: oas_source)
end
|
.clear_cache ⇒ Object
40
41
42
43
44
45
|
# File 'lib/oas_hanami.rb', line 40
def clear_cache
return if Hanami.env?(:production)
MethodSource.clear_cache
RouteExtractor.clear_cache
end
|
.config ⇒ Object
36
37
38
|
# File 'lib/oas_hanami.rb', line 36
def config
@config ||= Configuration.new
end
|
32
33
34
|
# File 'lib/oas_hanami.rb', line 32
def configure
yield config
end
|
.read_source_oas_file ⇒ Object
47
48
49
50
51
52
53
54
55
|
# File 'lib/oas_hanami.rb', line 47
def read_source_oas_file
file_path = Hanami.app.root.join(config.source_oas_path)
JSON.parse(File.read(file_path), symbolize_names: true)
rescue Errno::ENOENT => e
raise "Failed to read source OAS file at #{file_path}: #{e.message}"
rescue JSON::ParserError => e
raise "Failed to parse source OAS file at #{file_path}: #{e.message}"
end
|