Module: OpenehrRails::Naming

Defined in:
lib/openehr_rails/naming.rb

Overview

Derives Rails model names from openEHR template ids. Shared by the scaffold generator and the admin engine (to detect/generate UIs).

Constant Summary collapse

RM_TYPES =
%w[COMPOSITION OBSERVATION EVALUATION ACTION INSTRUCTION ADMIN_ENTRY].freeze

Class Method Summary collapse

Class Method Details

.model_name(template_id) ⇒ Object

"openEHR-EHR-COMPOSITION.vital_signs.v1" => "vital_signs"



12
13
14
15
16
17
18
19
20
21
# File 'lib/openehr_rails/naming.rb', line 12

def model_name(template_id)
  name = template_id.dup
  name.gsub!(/^openEHR-EHR-/, '')
  name.gsub!(/^openEHR-/, '')
  name.gsub!(/^IDCR-/, '')
  name.gsub!(/^EHRN-/, '')
  RM_TYPES.each { |rm_type| name.gsub!(/^#{rm_type}\./, '') }
  name.gsub!(/\.v\d+(\.\d+)?$/, '')
  name.downcase.gsub(/[.\s-]/, '_')
end