class Akabei::PackageEntry
Constants
- ARRAY_ATTRIBUTES
- ARRAY_DEPENDS_ATTRIBUTES
- ARRAY_DESC_ATTRIBUTES
- ARRAY_FILES_ATTRIBUTES
- DESC_ATTRIBUTES
Public Class Methods
new()
click to toggle source
# File lib/akabei/package_entry.rb, line 41 def initialize ARRAY_ATTRIBUTES.each do |key| instance_variable_set("@#{key}", []) end end
Public Instance Methods
==(other)
click to toggle source
# File lib/akabei/package_entry.rb, line 62 def ==(other) (ARRAY_ATTRIBUTES + DESC_ATTRIBUTES).all? do |attr| public_send(attr) == other.public_send(attr) end end
add(key, val)
click to toggle source
# File lib/akabei/package_entry.rb, line 47 def add(key, val) ivar = "@#{key}".intern if ARRAY_ATTRIBUTES.include?(key) instance_variable_get(ivar) << val elsif DESC_ATTRIBUTES.include?(key) if v = instance_variable_get(ivar) raise Error.new("Multiple entry found: #{v} and #{val}") else instance_variable_set(ivar, val) end else raise Error.new("Unknown entry key: #{key}") end end
db_name()
click to toggle source
# File lib/akabei/package_entry.rb, line 68 def db_name "#{name}-#{version}" end
write_array(io, attr)
click to toggle source
# File lib/akabei/package_entry.rb, line 94 def write_array(io, attr) arr = instance_variable_get("@#{attr}") unless arr.empty? write_entry(io, attr, arr) end end
write_depends(io)
click to toggle source
# File lib/akabei/package_entry.rb, line 82 def write_depends(io) ARRAY_DEPENDS_ATTRIBUTES.each do |attr| write_array(io, attr) end end
write_desc(io)
click to toggle source
# File lib/akabei/package_entry.rb, line 72 def write_desc(io) ARRAY_DESC_ATTRIBUTES.each do |attr| write_array(io, attr) end DESC_ATTRIBUTES.each do |attr| write_string(io, attr) end end
write_entry(io, attr, val)
click to toggle source
# File lib/akabei/package_entry.rb, line 107 def write_entry(io, attr, val) io.puts "%#{attr.upcase}%" io.puts val io.puts true end
write_files(io)
click to toggle source
# File lib/akabei/package_entry.rb, line 88 def write_files(io) unless write_array(io, 'files') warn 'WARNING: files attribute is empty.' end end
write_string(io, attr)
click to toggle source
# File lib/akabei/package_entry.rb, line 101 def write_string(io, attr) if v = instance_variable_get("@#{attr}") write_entry(io, attr, v) end end