class HostSummaryParser
Constants
- VERSION
Public Class Methods
parse(string)
click to toggle source
# File lib/host_summary_parser.rb, line 4 def self.parse(string) parsed = "" string.split("\n").each do |line| line.gsub!(/\(.+\)/,"") if line =~ /^(\s*)(\S+)\s*=\s*([\{\[])\s*$/ parsed << "#{$1}:#{$2} => #{$3}\n" elsif line =~ /^(\s*)(\S+)\s*=\s*(.*),\s*$/ s = $1; l = $2; r = $3 # insert double quotation if r =~ /^".*?"$/ parsed << "#{s}:#{l} => #{r},\n" else parsed << "#{s}:#{l} => \"#{r}\",\n" end else parsed << line + "\n" end parsed.gsub!(/"<unset>"/,"nil") end begin eval(parsed) rescue raise "cannot parse \"#{string.to_s}\"" end end