Class: Sinicum::Jcr::TypeTranslators::DataTranslator

Inherits:
Object
  • Object
show all
Includes:
TranslatorBase
Defined in:
lib/sinicum/jcr/type_translators/data_translator.rb

Overview

Public: Identifies nodes in the data module and assigns the matching classes to them.

Constant Summary collapse

DEFAULT_TYPES =
["mgnl:content", "mgnl:contentNode"]
WORKSPACE =
"data"

Constants included from TranslatorBase

TranslatorBase::META_NODE, TranslatorBase::MGNL_TEMPLATE, TranslatorBase::NODES, TranslatorBase::PRIMARY_TYPE, TranslatorBase::PROPERTIES

Class Method Summary collapse

Class Method Details

.initialize_node(json) ⇒ Object



12
13
14
15
16
# File 'lib/sinicum/jcr/type_translators/data_translator.rb', line 12

def self.initialize_node(json)
  if workspace(json) == WORKSPACE && jcr_primary_type(json) && no_default_type?(json)
    instance_from_primary_type(json)
  end
end

.instance_from_primary_type(json) ⇒ Object



22
23
24
25
26
27
# File 'lib/sinicum/jcr/type_translators/data_translator.rb', line 22

def self.instance_from_primary_type(json)
  clazz = jcr_primary_type(json).classify
  clazz.constantize.new(json_response: json)
rescue NameError
  nil
end

.no_default_type?(json) ⇒ Boolean



18
19
20
# File 'lib/sinicum/jcr/type_translators/data_translator.rb', line 18

def self.no_default_type?(json)
  !DEFAULT_TYPES.include?(jcr_primary_type(json))
end