Sha256: 3c330061e4c71c00ac9a0e179f74f8369a82b9ca3d16301110c8d3506f3910c9

Contents?: true

Size: 1.04 KB

Versions: 5

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

5 entries across 5 versions & 1 rubygems

Version Path
fhir_models-3.0.4 lib/fhir_models/bootstrap/field.rb
fhir_models-3.0.3 lib/fhir_models/bootstrap/field.rb
fhir_models-3.0.2 lib/fhir_models/bootstrap/field.rb
fhir_models-3.0.1 lib/fhir_models/bootstrap/field.rb
fhir_models-1.8.3 lib/fhir_models/bootstrap/field.rb