Sha256: 116672bf747343f282b3c536df25028a8ad327a1287bc03a8b8ad0330c7d1de1

Contents?: true

Size: 1.58 KB

Versions: 3

Compression:

Stored size: 1.58 KB

Contents

require 'open_ehr/rm/data_types/text'
include OpenEHR::RM::Support::Identification
include OpenEHR::RM::Common::Resource

module OpenEHR
  module Parser
    module ADLGrammar
      class Base < Treetop::Runtime::SyntaxNode

      end

      class ArchLanguage < Base
        def value
          return Language.new(lang.value)
        end
      end

      class Language
        include OpenEHR::RM::DataTypes::Text
        attr_reader :original_language, :translations
        
        def initialize(value)
          self.original_language = value['original_language']
          self.translations = value['translations']
        end
        
        def original_language=(original_language)
          @original_language = original_language
        end
        
        def translations=(translations)
          if translations.nil?
            @translations = nil
          else
            tr = translations.inject({ }) do |trans, lang|
              code, details  = lang
              td = TranslationDetails.new(
                     :language => details['language'],
                     :author => details['author'],
                     :accreditation => details['accreditation'],
                     :other_details => details['other_details'])
              trans.update Hash[code, td]
            end
            @translations = tr
          end
        end
        
        protected
        def code2lang(code)
          ti, la = code.split '::'
          ti = TerminologyID.new(:value => ti)
          CodePhrase.new(:code_string => la, :terminology_id => ti)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
open_ehr-1.0.2 lib/open_ehr/parser/adl.rb
open_ehr-1.0.1 lib/open_ehr/parser/adl.rb
open_ehr-1.0.0 lib/open_ehr/parser/adl.rb