Class: CancerRegistryReportingTestKit::HdeaGenerator::MustSupportTestGenerator
- Inherits:
-
Object
- Object
- CancerRegistryReportingTestKit::HdeaGenerator::MustSupportTestGenerator
- Defined in:
- lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb
Instance Attribute Summary collapse
-
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
-
#group_metadata ⇒ Object
Returns the value of attribute group_metadata.
Class Method Summary collapse
Instance Method Summary collapse
- #base_output_file_name ⇒ Object
- #build_must_support_list_string(uscdi_only) ⇒ Object
- #class_name ⇒ Object
- #generate ⇒ Object
-
#initialize(group_metadata, base_output_dir) ⇒ MustSupportTestGenerator
constructor
A new instance of MustSupportTestGenerator.
- #module_name ⇒ Object
- #must_support_list_string ⇒ Object
- #output ⇒ Object
- #output_file_directory ⇒ Object
- #output_file_name ⇒ Object
- #profile_identifier ⇒ Object
- #profile_link ⇒ Object
- #profile_name ⇒ Object
- #profile_url ⇒ Object
- #profile_version ⇒ Object
- #read_interaction ⇒ Object
- #resource_collection_string ⇒ Object
- #resource_type ⇒ Object
- #template ⇒ Object
- #test_id ⇒ Object
- #uscdi_list_string ⇒ Object
Constructor Details
#initialize(group_metadata, base_output_dir) ⇒ MustSupportTestGenerator
Returns a new instance of MustSupportTestGenerator.
19 20 21 22 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 19 def initialize(, base_output_dir) self. = self.base_output_dir = base_output_dir end |
Instance Attribute Details
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
17 18 19 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 17 def base_output_dir @base_output_dir end |
#group_metadata ⇒ Object
Returns the value of attribute group_metadata.
17 18 19 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 17 def @group_metadata end |
Class Method Details
.generate(ig_metadata, base_output_dir) ⇒ Object
10 11 12 13 14 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 10 def generate(, base_output_dir) .groups .reject { |group| SpecialCases::IGNORE_FOR_GENERATION.include?(group.profile_url) } .each { |group| new(group, base_output_dir).generate } end |
Instance Method Details
#base_output_file_name ⇒ Object
32 33 34 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 32 def base_output_file_name "#{class_name.underscore}.rb" end |
#build_must_support_list_string(uscdi_only) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 96 def build_must_support_list_string(uscdi_only) slice_names = .must_supports[:slices] .select { |slice| slice[:uscdi_only].presence == uscdi_only.presence } .map { |slice| slice[:slice_id] } element_names = .must_supports[:elements] .select { |element| element[:uscdi_only].presence == uscdi_only.presence } .map { |element| "#{resource_type}.#{element[:path]}" } extension_names = .must_supports[:extensions] .select { |extension| extension[:uscdi_only].presence == uscdi_only.presence } .map { |extension| extension[:id] } .must_supports[:choices]&.each do |choice| next unless choice[:uscdi_only].presence == uscdi_only.presence && choice.key?(:paths) choice[:paths].each { |path| element_names.delete("#{resource_type}.#{path}") } element_names << choice[:paths].map { |path| "#{resource_type}.#{path}" }.join(' or ') end (slice_names + element_names + extension_names) .uniq .sort .map { |name| "#{' ' * 8}* #{name}" } .join("\n") end |
#class_name ⇒ Object
72 73 74 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 72 def class_name "#{Naming.upper_camel_case_for_profile()}MustSupportTest" end |
#generate ⇒ Object
123 124 125 126 127 128 129 130 131 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 123 def generate FileUtils.mkdir_p(output_file_directory) File.write(output_file_name, output) .add_test( id: test_id, file_name: base_output_file_name ) end |
#module_name ⇒ Object
76 77 78 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 76 def module_name "HDEA#{.reformatted_version.upcase}" end |
#must_support_list_string ⇒ Object
88 89 90 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 88 def must_support_list_string build_must_support_list_string(false) end |
#output ⇒ Object
28 29 30 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 28 def output @output ||= ERB.new(template).result(binding) end |
#output_file_directory ⇒ Object
36 37 38 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 36 def output_file_directory File.join(base_output_dir, profile_identifier) end |
#output_file_name ⇒ Object
40 41 42 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 40 def output_file_name File.join(output_file_directory, base_output_file_name) end |
#profile_identifier ⇒ Object
48 49 50 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 48 def profile_identifier Naming.snake_case_for_profile() end |
#profile_link ⇒ Object
64 65 66 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 64 def profile_link "#{profile_url}|#{profile_version}" end |
#profile_name ⇒ Object
56 57 58 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 56 def profile_name "#{.profile_name.chomp(' Profile')} profile" end |
#profile_url ⇒ Object
52 53 54 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 52 def profile_url .profile_url end |
#profile_version ⇒ Object
60 61 62 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 60 def profile_version .profile_version end |
#read_interaction ⇒ Object
44 45 46 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 44 def read_interaction self.class.read_interaction() end |
#resource_collection_string ⇒ Object
84 85 86 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 84 def resource_collection_string 'all_scratch_resources' end |
#resource_type ⇒ Object
80 81 82 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 80 def resource_type .resource end |
#template ⇒ Object
24 25 26 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 24 def template @template ||= File.read(File.join(__dir__, 'templates', 'must_support.rb.erb')) end |
#test_id ⇒ Object
68 69 70 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 68 def test_id "ccrr_#{.reformatted_version}_#{profile_identifier}_must_support_test" end |
#uscdi_list_string ⇒ Object
92 93 94 |
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb', line 92 def uscdi_list_string build_must_support_list_string(true) end |