Sha256: 3f47357c8447a450c40c313bbdced953d46162b928f7d2d9c0348ef9f8c3c47a

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module FHIR
  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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fhir_models-1.8.2 lib/fhir_models/bootstrap/field.rb
fhir_models-1.8.1 lib/fhir_models/bootstrap/field.rb
fhir_models-1.8.0 lib/fhir_models/bootstrap/field.rb