module CodeLoader
Read XML info about Code
input data
Public Class Methods
load(xmldata, filepath)
click to toggle source
Load XML data about Code
object @param xmldata (XML Object) @param filepath (String) @return Code
object
# File lib/asker/loader/code_loader.rb, line 15 def self.load(xmldata, filepath) data = read_codedata_from_xml(xmldata, File.basename(filepath)) code = Code.new(File.dirname(filepath), data[:path], data[:type]) code.features << data[:features] code end
Private Class Methods
read_codedata_from_xml(xmldata, filename)
click to toggle source
Read Code
data from XML content @param xmldata (XML Object) @param filename (String) File name that contains data @return Code
object
# File lib/asker/loader/code_loader.rb, line 27 def self.read_codedata_from_xml(xmldata, filename) data = { path: '?', type: '?', features: [] } xmldata.elements.each do |i| data[:path] = i.text if i.name == 'path' data[:type] = i.text.to_sym if i.name == 'type' data[:features] << read_features(i, filename) if i.name == 'features' end data end
read_features(xmldata, filename)
click to toggle source
Read features data from XML input @param xmldata (XML object) @return Array with features (Strings)
# File lib/asker/loader/code_loader.rb, line 41 def self.read_features(xmldata, filename) features = [] xmldata.elements.each do |i| if i.name == 'row' features << i.text else msg = Rainbow("[ERROR] features/#{i.name} from #{filename}").color(:red) Logger.verbose msg end end features end