Module: CodeLoader
- Defined in:
- lib/asker/loader/code_loader.rb
Overview
Read XML info about Code input data
Class Method Summary collapse
-
.load(xmldata, filepath) ⇒ Object
Load XML data about Code object.
-
.read_codedata_from_xml(xmldata, filename) ⇒ Object
Read Code data from XML content.
-
.read_features(xmldata, filename) ⇒ Object
Read features data from XML input.
Class Method Details
.load(xmldata, filepath) ⇒ Object
Load XML data about Code object
15 16 17 18 19 20 |
# 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 |
.read_codedata_from_xml(xmldata, filename) ⇒ Object
Read Code data from XML content
27 28 29 30 31 32 33 34 35 |
# 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) ⇒ Object
Read features data from XML input
41 42 43 44 45 46 47 48 49 50 51 52 |
# 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 |