class EnergyPlus::ResultsLog
Public Class Methods
new(path)
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 25 def initialize(path) @path = Pathname.new(path) @entries = [] @initialized = false @valid = false end
Public Instance Methods
entries()
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 50 def entries init if not @initialized return @entries end
find_entries(*search_terms)
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 32 def find_entries(*search_terms) init if not @initialized entries = @entries.select do |entry| found = true search_terms.each do |search_term| if not entry[:description] =~ Regexp.new(search_term) found = false end end found end return entries end
find_entry(*search_terms)
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 46 def find_entry(*search_terms) return find_entries(*search_terms).first end
valid?()
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 55 def valid? init if not @initialized return @valid end
Private Instance Methods
init()
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 62 def init @initialized = true if @path.exist? File.open(@path) do |f| text = f.read @entries = parse_entries(text) end end total_site_energy = find_entry('Total Energy','Total Site Energy') if not total_site_energy.nil? if total_site_energy[:value].to_f > 0 @valid = true end end end
parse_entries(text)
click to toggle source
# File lib/energyplus/ResultsLog.rb, line 80 def parse_entries(text) entries = [] lines = text.split("\n") lines.each do |line| entry = Hash.new begin entry[:units] = line.match(/\[(.*?)\]/)[1] rescue entry[:units] = '' end entry[:description] = line.match(/(.*?),/)[1].sub(/\[.*?\]/,'').strip entry[:value] = line.match(/,(.*)/)[1] entries << entry end return entries end