Sha256: dcb85cafaf923a8155033d0a2c6fa01034e9eaf67603ebc2da9308f6f3f260e6

Contents?: true

Size: 1.13 KB

Versions: 5

Compression:

Stored size: 1.13 KB

Contents

module FHIR
  module STU3
    class Field
      attr_accessor :name
      attr_accessor :local_name
      attr_accessor :path
      attr_accessor :type
      attr_accessor :type_profiles
      attr_accessor :min
      attr_accessor :max
      attr_accessor :valid_codes
      attr_accessor :binding
      attr_accessor :regex
      attr_accessor :constraint

      def initialize(name = '')
        @name = name
        @local_name = fix_name(@name)
        @type_profiles = []
        @valid_codes = []
      end

      def serialize
        hash = {}
        instance_variables.each do |v|
          hash[v.to_s[1..-1]] = instance_variable_get(v)
        end
        hash.delete('name')
        hash.keep_if do |_key, value|
          !value.nil? && ((value.is_a?(Hash) && !value.empty?) ||
                            (value.is_a?(Array) && !value.empty?) ||
                            (!value.is_a?(Hash) && !value.is_a?(Array))
                         )
        end
        hash
      end

      def fix_name(name)
        fix = nil
        fix = "local_#{name}" if %w[class method resourceType].include?(name)
        fix
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fhir_stu3_models-3.1.1 lib/fhir_stu3_models/bootstrap/field.rb
fhir_stu3_models-3.1.0 lib/fhir_stu3_models/bootstrap/field.rb
fhir_stu3_models-3.0.2 lib/fhir_stu3_models/bootstrap/field.rb
fhir_stu3_models-3.0.1 lib/fhir_stu3_models/bootstrap/field.rb
fhir_stu3_models-3.0.0 lib/fhir_stu3_models/bootstrap/field.rb