Sha256: d35a1990dc7406c6e55f704c4a38f99ca14204d38bfb3e43d242e49f84b7226a

Contents?: true

Size: 1.13 KB

Versions: 33

Compression:

Stored size: 1.13 KB

Contents

require 'json'

# Extension to FHIR::Model. Prepending this into FHIR::Model (done below)
# allows us to call super() on initialize when we overriding it,
# while also defining new methods and attributes
module InfernoFHIRModelExtensions
  attr_accessor :source_hash, :source_text

  def initialize(hash = {})
    super(hash)
    @source_hash = hash
  end

  def source_contents
    @source_text || JSON.generate(@source_hash)
  end
end

module FHIR
  class Model
    prepend ::InfernoFHIRModelExtensions
  end
end

# Extension to FHIR::Json. Prepending this into FHIR::Json (done below)
# allows us to call super() on from_json
module InfernoJson
  def from_json(json)
    resource = super(json)
    resource&.source_text = json
    resource
  end
end

# Extension to FHIR::Xml. Prepending this into FHIR::Xml (done below)
# allows us to call super() on from_xml
module InfernoXml
  def from_xml(xml)
    resource = super(xml)
    resource&.source_text = xml
    resource
  end
end

module FHIR
  module Json
    class << self
      prepend InfernoJson
    end
  end
end

module FHIR
  module Xml
    class << self
      prepend InfernoXml
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
inferno_core-0.4.21 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.20 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.19 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.18 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.17 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.16 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.15 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.14 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.13 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.12 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.11 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.10 lib/inferno/ext/fhir_models.rb
inferno_core-0.4.9 lib/inferno/ext/fhir_models.rb