Class: FHIR::Generator
- Inherits:
-
Object
show all
- Defined in:
- lib/fhir_models/generator/template.rb,
lib/fhir_models/generator/generator.rb,
lib/fhir_models/generator/ig_loader.rb,
lib/fhir_models/generator/ig_metadata.rb,
lib/fhir_models/generator/ig_resources.rb,
lib/fhir_models/generator/class_generator.rb,
lib/fhir_models/generator/metadata_generator.rb
Defined Under Namespace
Classes: ClassGenerator, IGLoader, IGMetadata, IGResources, MetadataGenerator, Template
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(ig_file_name) ⇒ Generator
Returns a new instance of Generator.
24
25
26
|
# File 'lib/fhir_models/generator/generator.rb', line 24
def initialize(ig_file_name)
self.ig_file_name = ig_file_name
end
|
Instance Attribute Details
#ig_file_name ⇒ Object
Returns the value of attribute ig_file_name.
22
23
24
|
# File 'lib/fhir_models/generator/generator.rb', line 22
def ig_file_name
@ig_file_name
end
|
#ig_resources ⇒ Object
Returns the value of attribute ig_resources.
22
23
24
|
# File 'lib/fhir_models/generator/generator.rb', line 22
def ig_resources
@ig_resources
end
|
Class Method Details
.generate ⇒ Object
14
15
16
17
18
19
20
|
# File 'lib/fhir_models/generator/generator.rb', line 14
def self.generate
ig_packages = Dir.glob(File.join(Dir.pwd, 'lib', 'fhir_models', 'igs', '*.tgz'))
ig_packages.each do |ig_package|
new(ig_package).generate
end
end
|
Instance Method Details
#base_output_folder ⇒ Object
36
37
38
|
# File 'lib/fhir_models/generator/generator.rb', line 36
def base_output_folder
File.join(__dir__, '../', VERSION_MAP[ig_resources.ig_metadata.version].to_s, 'generated')
end
|
#generate ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/fhir_models/generator/generator.rb', line 28
def generate
puts "Generating tests for IG #{File.basename(ig_file_name)}"
load_ig_package
generate_metadata
generate_types
generate_resources
end
|
47
48
49
|
# File 'lib/fhir_models/generator/generator.rb', line 47
def generate_metadata
MetadataGenerator.new(ig_resources, base_output_folder).generate
end
|
#generate_resources ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/fhir_models/generator/generator.rb', line 59
def generate_resources
output_folder = File.join(base_output_folder, 'resources')
FileUtils.mkdir_p(output_folder)
resource_definitions = ig_resources.resource_definitions
ClassGenerator.new(resource_definitions, ig_resources, output_folder).generate
end
|
#generate_types ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/fhir_models/generator/generator.rb', line 51
def generate_types
output_folder = File.join(base_output_folder, 'types')
FileUtils.mkdir_p(output_folder)
complex_types = ig_resources.complex_types
ClassGenerator.new(complex_types, ig_resources, output_folder).generate
end
|
#load_ig_package ⇒ Object
40
41
42
43
44
45
|
# File 'lib/fhir_models/generator/generator.rb', line 40
def load_ig_package
FHIR.logger = Logger.new('/dev/null')
ig_loader = IGLoader.new(ig_file_name)
self.ig_resources = ig_loader.load(show_summary: true)
FileUtils.mkdir_p(base_output_folder)
end
|