Class: DaVinciPASTestKit::Generator::ServerSuiteGenerator
- Inherits:
-
Object
- Object
- DaVinciPASTestKit::Generator::ServerSuiteGenerator
- Defined in:
- lib/davinci_pas_test_kit/generator/server_suite_generator.rb
Instance Attribute Summary collapse
-
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
-
#ig_metadata ⇒ Object
Returns the value of attribute ig_metadata.
Class Method Summary collapse
Instance Method Summary collapse
- #base_output_file_name ⇒ Object
-
#claim_updates_group? ⇒ Boolean
Claim Updates is a v2.2.x feature (it relies on the PAS Claim Update profile), so it is only wired into the v2.2+ server suites.
- #claim_updates_group_file_name ⇒ Object
- #claim_updates_group_id ⇒ Object
- #class_name ⇒ Object
- #error_group_file_name ⇒ Object
- #error_group_id ⇒ Object
- #generate ⇒ Object
- #group_file_list ⇒ Object
- #group_id_list ⇒ Object
- #groups ⇒ Object
- #ig_identifier ⇒ Object
- #ig_link ⇒ Object
-
#initialize(ig_metadata, base_output_dir) ⇒ ServerSuiteGenerator
constructor
A new instance of ServerSuiteGenerator.
- #module_name ⇒ Object
- #must_support_group_id ⇒ Object
- #output ⇒ Object
- #output_file_name ⇒ Object
-
#pas_requirement_set_actor ⇒ Object
The PAS requirement set renamed its server-side actor from "Server" (v2.0.1) to "PAS Payer" (v2.2.1).
- #suite_id ⇒ Object
- #template ⇒ Object
- #title ⇒ Object
- #validator_igs_expression ⇒ Object
Constructor Details
#initialize(ig_metadata, base_output_dir) ⇒ ServerSuiteGenerator
Returns a new instance of ServerSuiteGenerator.
12 13 14 15 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 12 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.
10 11 12 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 10 def base_output_dir @base_output_dir end |
#ig_metadata ⇒ Object
Returns the value of attribute ig_metadata.
10 11 12 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 10 def @ig_metadata end |
Class Method Details
.generate(ig_metadata, base_output_dir) ⇒ Object
5 6 7 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 5 def generate(, base_output_dir) new(, base_output_dir).generate end |
Instance Method Details
#base_output_file_name ⇒ Object
25 26 27 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 25 def base_output_file_name 'server_suite.rb' end |
#claim_updates_group? ⇒ Boolean
Claim Updates is a v2.2.x feature (it relies on the PAS Claim Update profile), so it is only wired into the v2.2+ server suites.
100 101 102 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 100 def claim_updates_group? .ig_version.start_with?('v2.2') end |
#claim_updates_group_file_name ⇒ Object
104 105 106 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 104 def claim_updates_group_file_name "../../#{.ig_version}/pas_server_claim_updates_group" end |
#claim_updates_group_id ⇒ Object
108 109 110 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 108 def claim_updates_group_id "pas_server_#{.reformatted_version}_claim_updates" end |
#class_name ⇒ Object
29 30 31 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 29 def class_name 'ServerSuite' end |
#error_group_file_name ⇒ Object
90 91 92 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 90 def error_group_file_name "../../#{.ig_version}/pas_error_group" end |
#error_group_id ⇒ Object
94 95 96 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 94 def error_group_id "pas_#{.reformatted_version}_error_group" end |
#generate ⇒ Object
71 72 73 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 71 def generate File.write(output_file_name, output) end |
#group_file_list ⇒ Object
85 86 87 88 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 85 def group_file_list @group_file_list ||= groups.map { |group| group[:file_name].delete_suffix('.rb') } .reject { |name| name.include?('client') } end |
#group_id_list ⇒ Object
79 80 81 82 83 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 79 def group_id_list @group_id_list ||= groups.map { |group| group[:id] } .reject { |id| id.include?('client') } .reject { |id| id.include?('must_support') } end |
#groups ⇒ Object
75 76 77 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 75 def groups .use_case_groups end |
#ig_identifier ⇒ Object
49 50 51 52 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 49 def ig_identifier version = .ig_version[1..] # Remove leading 'v' "hl7.fhir.us.davinci-pas##{version}" end |
#ig_link ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 60 def ig_link case .ig_version when 'v2.0.1' 'https://hl7.org/fhir/us/davinci-pas/STU2/' when 'v2.2.1' 'https://hl7.org/fhir/us/davinci-pas/2.2.1/' else 'https://hl7.org/fhir/us/davinci-pas/history.html' end end |
#module_name ⇒ Object
33 34 35 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 33 def module_name "DaVinciPAS#{.reformatted_version.upcase}" end |
#must_support_group_id ⇒ Object
119 120 121 122 123 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 119 def must_support_group_id @must_support_group_id ||= groups.map { |group| group[:id] } .reject { |id| id.include?('client') } .find { |id| id.include?('must_support') } end |
#output ⇒ Object
21 22 23 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 21 def output @output ||= ERB.new(template).result(binding) end |
#output_file_name ⇒ Object
37 38 39 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 37 def output_file_name File.join(base_output_dir, base_output_file_name) end |
#pas_requirement_set_actor ⇒ Object
The PAS requirement set renamed its server-side actor from "Server" (v2.0.1) to "PAS Payer"
(v2.2.1). The actor must match the requirement source exactly or verifies_requirements
annotations will not resolve.
115 116 117 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 115 def pas_requirement_set_actor .ig_version.start_with?('v2.2') ? 'PAS Payer' : 'Server' end |
#suite_id ⇒ Object
41 42 43 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 41 def suite_id "davinci_pas_server_suite_#{.reformatted_version}" end |
#template ⇒ Object
17 18 19 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 17 def template @template ||= File.read(File.join(__dir__, 'templates', 'server_suite.rb.erb')) end |
#title ⇒ Object
45 46 47 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 45 def title "Da Vinci PAS Server Suite #{.ig_version}" end |
#validator_igs_expression ⇒ Object
54 55 56 57 58 |
# File 'lib/davinci_pas_test_kit/generator/server_suite_generator.rb', line 54 def validator_igs_expression identifiers = [ig_identifier] identifiers << 'hl7.fhir.us.core#6.1.0' if .ig_version.start_with?('v2.2') identifiers.map(&:inspect).join(', ') end |