Class: EnhanceRepo::RpmMd::Other

Inherits:
Data
  • Object
show all
Defined in:
lib/enhance_repo/rpm_md/other.rb

Overview

represents filelist data

See: en.opensuse.org/Standards/Rpm_Metadata

Instance Method Summary collapse

Methods inherited from Data

#metadata_filename, #name, #should_compress?

Methods included from Logger

#log

Constructor Details

#initialize(dir) ⇒ Other

Returns a new instance of Other.



35
36
37
38
# File 'lib/enhance_repo/rpm_md/other.rb', line 35

def initialize(dir)
  @dir = dir
  @rpmfiles = []
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/enhance_repo/rpm_md/other.rb', line 46

def empty?
  @rpmfiles.empty?
end

#readObject



40
41
42
43
44
# File 'lib/enhance_repo/rpm_md/other.rb', line 40

def read
  Dir["#{@dir}/**/*.rpm"].each do |rpmfile|
    @rpmfiles << rpmfile
  end  
end

#write(file) ⇒ Object

write filelists.xml



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/enhance_repo/rpm_md/other.rb', line 51

def write(file)
  builder = Builder::XmlMarkup.new(:target=>file, :indent=>2)
  builder.instruct!
  xml = builder.tag!("otherdata", 'xmlns' => 'xmlns="http://linux.duke.edu/metadata/other"', 'packages'=> @rpmfiles.size ) do |b|
    @rpmfiles.each do |rpmfile|
      pkgid = PackageId.new(rpmfile)
      b.package('pkgid'=>pkgid.checksum, 'name' => pkgid.name, 'arch'=>pkgid.arch ) do | b |
        b.version('epoch' => pkgid.version.e, 'ver' => pkgid.version.v, 'rel' => pkgid.version.r)
      end
      #  done package tag
    end
    # next package
  end
end