class Wire::ProjectYamlLoader
ProjectYamlLoader
is able to load a model from yaml files (as written by init command)
Public Instance Methods
load_model_element_file(filename)
click to toggle source
reads filename as yaml, returns elements
# File lib/wire/model/loader.rb, line 45 def load_model_element_file(filename) YAML.load(File.open(filename, 'r')) end
load_project(target_dir)
click to toggle source
loads project model from target_dir
# File lib/wire/model/loader.rb, line 13 def load_project(target_dir) # ensure target dir exists, is a dir fail(ArgumentError, 'Nonexisting directory') unless File.exist?(target_dir) && File.directory?(target_dir) # create project project = Project.new(target_dir) # iterate all model element types, load if file exists MODEL_ELEMENTS.each do |model_element| filename = File.join(target_dir, "#{model_element}.yaml") # jump out unless file exists next unless File.exist?(filename) && File.readable?(filename) $log.debug "Loading model file #{filename}" element_data = load_model_element_file(filename) project.merge_element model_element, element_data end # dump some statistics puts(project.calc_stats.reduce([]) do |res, elem| type = elem[0] count = elem[1] res << "#{count} #{type}(s)" end.join(', ')) project end