Class: PacioInfernoCore::Generator::SuiteGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/pacio_inferno_core/generator/suite_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ig_metadata, base_output_dir) ⇒ SuiteGenerator

Returns a new instance of SuiteGenerator.



15
16
17
18
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 15

def initialize(, base_output_dir)
  self. = 
  self.base_output_dir = base_output_dir
end

Instance Attribute Details

#base_output_dirObject

Returns the value of attribute base_output_dir.



13
14
15
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 13

def base_output_dir
  @base_output_dir
end

#ig_metadataObject

Returns the value of attribute ig_metadata.



13
14
15
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 13

def 
  @ig_metadata
end

Class Method Details

.generate(ig_metadata, base_output_dir) ⇒ Object



8
9
10
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 8

def generate(, base_output_dir)
  new(, base_output_dir).generate
end

Instance Method Details

#base_output_file_nameObject



36
37
38
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 36

def base_output_file_name
  "#{naming.prefix}_test_suite.rb"
end

#capability_statement_file_nameObject



96
97
98
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 96

def capability_statement_file_name
  "../../custom_groups/#{.ig_version}/capability_statement_group"
end

#capability_statement_group_idObject



100
101
102
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 100

def capability_statement_group_id
  "#{naming.prefix}_#{.reformatted_version}_capability_statement"
end

#class_nameObject



40
41
42
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 40

def class_name
  "#{naming.module_name}TestSuite"
end

#fhir_api_group_idObject



60
61
62
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 60

def fhir_api_group_id
  "#{naming.prefix}_#{.reformatted_version}_fhir_api"
end

#generateObject



77
78
79
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 77

def generate
  File.write(output_file_name, output)
end

#group_file_listObject



91
92
93
94
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 91

def group_file_list
  @group_file_list ||=
    groups.map { |group| group.file_name.delete_suffix('.rb') }
end

#group_id_listObject



86
87
88
89
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 86

def group_id_list
  @group_id_list ||=
    groups.map(&:id)
end

#groupsObject



81
82
83
84
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 81

def groups
  .ordered_groups
    .reject { |group| SpecialCases.exclude_group? group }
end

#ig_identifierObject



68
69
70
71
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 68

def ig_identifier
  version = .ig_version[1..] # Remove leading 'v'
  "#{.ig_package_id}##{version}"
end


73
74
75
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 73

def ig_link
  naming.ig_link(.ig_version)
end

#module_nameObject



44
45
46
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 44

def module_name
  naming.module_name.to_s
end

#module_name_with_versionObject



48
49
50
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 48

def module_name_with_version
  "#{naming.module_name}#{.reformatted_version.upcase}"
end

#namingObject



32
33
34
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 32

def naming
  self.class.module_parent::Naming
end

#outputObject



28
29
30
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 28

def output
  @output ||= ERB.new(template, trim_mode: '-').result(binding)
end

#output_file_nameObject



52
53
54
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 52

def output_file_name
  File.join(base_output_dir, base_output_file_name)
end

#suite_idObject



56
57
58
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 56

def suite_id
  "#{naming.prefix}_#{.reformatted_version}"
end

#templateObject



24
25
26
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 24

def template
  @template ||= File.read(File.join(__dir__, 'templates', 'suite.rb.erb'))
end

#titleObject



64
65
66
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 64

def title
  "#{naming.long_name} #{.ig_version}"
end

#version_specific_message_filtersObject



20
21
22
# File 'lib/pacio_inferno_core/generator/suite_generator.rb', line 20

def version_specific_message_filters
  []
end