Class: DaVinciPASTestKit::Generator::GroupMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/davinci_pas_test_kit/generator/group_metadata.rb

Constant Summary collapse

ATTRIBUTES =
%i[
  name
  class_name
  version
  reformatted_version
  resource
  conformance_expectation
  profile_url
  profile_name
  profile_version
  title
  short_description
  interactions
  operations
  required_concepts
  must_supports
  mandatory_elements
  bindings
  references
  tests
  id
  file_name
  delayed_references
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(metadata) ⇒ GroupMetadata

Returns a new instance of GroupMetadata.



31
32
33
34
35
36
37
# File 'lib/davinci_pas_test_kit/generator/group_metadata.rb', line 31

def initialize()
  .each do |key, value|
    raise "Unknown attribute #{key}" unless ATTRIBUTES.include? key

    instance_variable_set(:"@#{key}", value)
  end
end

Instance Method Details

#add_delayed_references(delayed_profiles, ig_resources) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/davinci_pas_test_kit/generator/group_metadata.rb', line 58

def add_delayed_references(delayed_profiles, ig_resources)
  self.delayed_references =
    references
      .select { |reference| (reference[:profiles] & delayed_profiles).present? }
      .map do |reference|
      profile_urls = (reference[:profiles] & delayed_profiles)
      delayed_resources = profile_urls.map { |url| ig_resources.resource_type_for_profile(url) }
      {
        path: reference[:path].gsub("#{resource}.", ''),
        resources: delayed_resources
      }
    end
end

#add_test(id:, file_name:) ⇒ Object



43
44
45
46
47
48
49
50
51
52
# File 'lib/davinci_pas_test_kit/generator/group_metadata.rb', line 43

def add_test(id:, file_name:)
  self.tests ||= []

   = {
    id:,
    file_name:
  }

  self.tests << 
end

#delayed?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/davinci_pas_test_kit/generator/group_metadata.rb', line 39

def delayed?
  !['Patient', 'Claim', 'ClaimResponse'].include?(resource)
end

#to_hashObject



54
55
56
# File 'lib/davinci_pas_test_kit/generator/group_metadata.rb', line 54

def to_hash
  ATTRIBUTES.each_with_object({}) { |key, hash| hash[key] = send(key) unless send(key).nil? }
end