Module: CodeModels::Serialization

Defined in:
lib/codemodels/serialization.rb

Overview

Everything related to serialization to Hash, lists and basic values is contained in this module

Defined Under Namespace

Modules: SerializationFunctionalities

Class Method Summary collapse

Class Method Details

.load_file(path, max_nesting = 500) ⇒ Object



122
123
124
# File 'lib/codemodels/serialization.rb', line 122

def self.load_file(path,max_nesting=500)
  JSON.parse(File.read(path),{max_nesting: max_nesting})
end

.rgenobject_to_model(root, adapters = {}) ⇒ Object



135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/codemodels/serialization.rb', line 135

def self.rgenobject_to_model(root,adapters={})
  model = {}
  external_elements = []

  sm = SerializationFunctionalities::SerializationMemory.new
  model['root'] = root.to_json(memory:sm,adapters:adapters)
  model['external_elements'] = []
  external_elements.each do |ee|
    model['external_elements'] << ee.to_json(memory:sm,adapters:adapters)
  end
  model
end

.save_as_model(root, model_path) ⇒ Object



148
149
150
151
# File 'lib/codemodels/serialization.rb', line 148

def self.save_as_model(root,model_path)
  model = to_model(root)
  save_model(model,model_path)
end

.save_model(model, model_path, max_nesting = 500) ⇒ Object



126
127
128
129
130
131
132
133
# File 'lib/codemodels/serialization.rb', line 126

def self.save_model(model,model_path,max_nesting=500)
  dir = File.dirname(model_path)
  FileUtils.mkdir_p(dir) 

  File.open(model_path, 'w') do |file|     
    file.write(JSON.pretty_generate(model, :max_nesting => max_nesting))
  end
end