class Akabei::PackageInfo
Constants
- ARRAY_ATTRIBUTES
See write_pkginfo() in /usr/bin/makepkg
- ATTRIBUTES
Public Class Methods
new()
click to toggle source
# File lib/akabei/package_info.rb, line 36 def initialize ARRAY_ATTRIBUTES.each do |attr| send("#{attr}=", []) end end
parse(data)
click to toggle source
# File lib/akabei/package_info.rb, line 42 def self.parse(data) info = new data.each_line do |line| line.strip! next if line.start_with?('#') if m = line.match(/\A(\w+)\s*=\s*(.+)\z/) key = m[1] val = m[2] if ARRAY_ATTRIBUTES.include?(key) info.send(key) << val elsif ATTRIBUTES.include?(key) if v = info.send(key) raise Error.new("Duplicated entry #{key}: #{v} and #{val}") else info.send("#{key}=", val) end else raise Error.new("Unknown attribute: #{key}: #{val}") end else raise Error.new("Malformed line: #{line}") end end info end