Module: CodeModels::Serialization::SerializationFunctionalities
- Defined in:
- lib/codemodels/serialization.rb
Defined Under Namespace
Classes: SerializationMemory
Instance Method Summary collapse
Instance Method Details
#to_json(serialization_memory = SerializationMemory.new, adapters = {}, with_source_info = true) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/codemodels/serialization.rb', line 32 def to_json(serialization_memory=SerializationMemory.new,adapters={},with_source_info=true) e_object = self map = { 'type' => qname, 'id' => serialization_memory.id(e_object) } if with_source_info if self.respond_to?(:source) && self.source source_map = {} if self.source.begin_pos source_map['begin_pos'] = {'line'=> self.source.begin_pos.line, 'column'=>self.source.begin_pos.column} end if self.source.end_pos source_map['end_pos'] = {'line'=> self.source.end_pos.line, 'column'=>self.source.end_pos.column} end map['source'] = source_map end end e_class = e_object.class.ecore e_class.eAllAttributes.each do |a| jsonize_attr_value(map,a) end e_class.eAllReferences.each do |r| id = jsonize_ref_value(map,r,adapters,serialization_memory) end if adapters.has_key? qname adapters[qname].adapt(self,map) end map end |