Sha256: 43698a068039d602095ea1f498232b350bedf5d645e277102ea6020cb98858ac
Contents?: true
Size: 1.81 KB
Versions: 3
Compression:
Stored size: 1.81 KB
Contents
require 'gem2rpm/rpm_file' module Gem2Rpm class RpmFileList include Enumerable # Returns a new file list created from the array of files (e.g. # Gem2Rpm::Specification.files). def initialize(files) @items = files.map { |f| RpmFile.new(f) } end # Calls the given block once for each element in self, passing that # element as a parameter. Returns the array itself. # If no block is given, an Enumerator is returned. def each # Return Enumerator when called withoug block. return to_enum(__callee__) unless block_given? @items.each { |item| yield item } end # Returns a new array containing the items in self for which the given # block is not true. The ordering of non-rejected elements is maintained. # If no block is given, an Enumerator is returned instead. def reject # Return Enumerator when called withoug block. return to_enum(__callee__) unless block_given? self.class.new(@items.reject { |item| yield item }) end # Returns a list of top level directories and files, omit all subdirectories. def top_level_entries self.class.new(entries.map { |f| f.gsub!(/([^\/]*).*/, '\1') }.uniq) end # Returns new list of files suitable for main. def main_entries self.class.new(entries.delete_if { |f| (f.doc? && !f.license?) || f.misc? || f.test? }) end # Returns new list of files suitable for -doc subpackage. def doc_entries self.class.new(entries.delete_if { |f| !((f.doc? && !f.license?) || f.misc? || f.test?) }) end # Returns string with all files from the list converted into entries # suitable for RPM .spec file. Thise entries should include all necessary # macros depending on file categorization. def to_rpm entries.map(&:to_rpm).join("\n") end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gem2rpm-1.0.2 | lib/gem2rpm/rpm_file_list.rb |
gem2rpm-1.0.1 | lib/gem2rpm/rpm_file_list.rb |
gem2rpm-1.0.0 | lib/gem2rpm/rpm_file_list.rb |