Sha256: 09d5e95718948db369bd4b796c0e8f3bbac493e9b9002dfed54ce21b5ce8806c

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

module FHIR
  module DSTU2
    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..]] = 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 ['class', 'method', 'resourceType'].include?(name)
        fix
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fhir_dstu2_models-1.2.0 lib/fhir_dstu2_models/bootstrap/field.rb