Method: VaspUtils::Incar.parse
- Defined in:
- lib/vasputils/incar.rb
.parse(io) ⇒ Object
与えられた IO を読み込み、INCAR として解析したハッシュを返す。
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/vasputils/incar.rb', line 25 def self.parse(io) results = self.new io.each_line do |line| line.sub!(/\#.*/, "") # コメント文字以降を削除 next unless /=/ =~ line if /(.*)=(.*)/ =~ line key = $1.strip val = $2.strip val.sub!(/\s.*$/, "") next if key.empty? if val.integer? val = val.to_i elsif val.float? val = val.to_f elsif val == ".TRUE." val = true elsif val == ".FALSE." val = false end results[key] = val end end results end |