module BuildLogParser::Gem5Stats
Public Class Methods
get_key_sequence(str)
click to toggle source
# File lib/buildlogparser/parsers/gem5.rb, line 62 def self.get_key_sequence(str) # split the key string into a sequence of symbols and strings keys = [] fragments = str.split("::").reject { |f| f.empty? } fragments.each { |f| if Gem5Stats::valid_symbol_sequence?(f) keys.concat(Gem5Stats::to_symbol_sequence(f)) else keys.push(f) end } return keys end
insert_into_hash(hash, keys, value)
click to toggle source
# File lib/buildlogparser/parsers/gem5.rb, line 76 def self.insert_into_hash(hash, keys, value) ptr = hash keys[0..-2].each { |k| ptr[k] ||= {} ptr = ptr[k] } ptr[keys[-1]] = value end
to_symbol_sequence(str)
click to toggle source
# File lib/buildlogparser/parsers/gem5.rb, line 57 def self.to_symbol_sequence(str) parts = str.split('.').reject { |f| f.empty? } return parts.map { |e| e.to_sym } end
valid_symbol?(str)
click to toggle source
# File lib/buildlogparser/parsers/gem5.rb, line 47 def self.valid_symbol?(str) str.match(/^\w+$/) != nil end
valid_symbol_sequence?(str)
click to toggle source
# File lib/buildlogparser/parsers/gem5.rb, line 51 def self.valid_symbol_sequence?(str) parts = str.split('.').reject { |f| f.empty? } parts.each { |e| return false unless Gem5Stats::valid_symbol?(e) } return true end