Class: Akabei::PackageEntry
- Inherits:
-
Object
- Object
- Akabei::PackageEntry
- Defined in:
- lib/akabei/package_entry.rb
Constant Summary collapse
- ARRAY_DESC_ATTRIBUTES =
%w[ groups license replaces ].freeze
- DESC_ATTRIBUTES =
%w[ filename name base version desc csize isize md5sum sha256sum pgpsig url arch builddate packager ].freeze
- ARRAY_DEPENDS_ATTRIBUTES =
%w[ depends conflicts provides optdepends makedepends checkdepends ].freeze
- ARRAY_FILES_ATTRIBUTES =
%w[files].freeze
- ARRAY_ATTRIBUTES =
(ARRAY_DESC_ATTRIBUTES + ARRAY_DEPENDS_ATTRIBUTES + ARRAY_FILES_ATTRIBUTES).freeze
Instance Method Summary collapse
- #==(other) ⇒ Object
- #add(key, val) ⇒ Object
- #db_name ⇒ Object
-
#initialize ⇒ PackageEntry
constructor
A new instance of PackageEntry.
- #write_array(io, attr) ⇒ Object
- #write_depends(io) ⇒ Object
- #write_desc(io) ⇒ Object
- #write_entry(io, attr, val) ⇒ Object
- #write_files(io) ⇒ Object
- #write_string(io, attr) ⇒ Object
Constructor Details
#initialize ⇒ PackageEntry
Returns a new instance of PackageEntry.
41 42 43 44 45 |
# File 'lib/akabei/package_entry.rb', line 41 def initialize ARRAY_ATTRIBUTES.each do |key| instance_variable_set("@#{key}", []) end end |
Instance Method Details
#==(other) ⇒ Object
62 63 64 65 66 |
# 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) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# 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 ⇒ Object
68 69 70 |
# File 'lib/akabei/package_entry.rb', line 68 def db_name "#{name}-#{version}" end |
#write_array(io, attr) ⇒ Object
94 95 96 97 98 99 |
# 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) ⇒ Object
82 83 84 85 86 |
# 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) ⇒ Object
72 73 74 75 76 77 78 79 80 |
# 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) ⇒ Object
107 108 109 110 111 112 |
# 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) ⇒ Object
88 89 90 91 92 |
# 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) ⇒ Object
101 102 103 104 105 |
# 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 |